J'ai une table SalesOrder et une table d'adresses distincte. Le SalesOrder a deux adresses - évitant ainsi l'utilisation d'une liste, il y a l'adresse Delivery et Invoice. Voilà comment ils ont été cartographiés dans le fichier de mappage SalesOrder:NHibernate/SQL Server plusieurs clés étrangères à la même table ... Possible?
<many-to-one name="DeliveryAddress" class="Address" column="`DeliveryAddressGUID`" />
<many-to-one name="InvoiceAddress" class="Address" column="`InvoiceAddressGUID`" />
Est-il vraiment possible d'avoir cette relation - où deux champs distincts dans la même référence de table une autre. Si je supprime une des associations « many-to-one », je peux ajouter une adresse à la table, sinon, si je garde les deux associations que je reçois l'exception suivante:
"The UPDATE statement conflicted with the FOREIGN KEY constraint \"FK67C9F3E2FBD32E03\". The conflict occurred in database \"Dispatch\", table \"dbo.Address\", column 'GUID'.\r\nThe statement has been terminated."
Est-ce que je fais quelque chose de mal?
Merci
Modifier Ce sont les parties pertinentes des deux tables:
SalesOrder
------------
Guid
DeiveryAddressGuid
InvoiceAddressGuid
...
Address
------------
Guid
HouseNameOrNumber
AddressLine1
AddressLine2
...
L'erreur est vraiment étrange car il ajoutera ne me laisse pas simplement une adresse à la table d'adresses par lui-même avec les deux clés étrangères actives (ceci est dans NHibernate, je n'ai pas pu tester cela directement avec SQL Server).
pouvez-vous nous montrer à quoi ressemblent les deux tables? Autant que je sache, vous devriez être en mesure d'avoir plusieurs clés étrangères de référence à une autre table. – DForck42
Merci pour votre réponse. Je vous ai ajouté des informations pour vous, cela semble toujours être un problème lorsque vous ajoutez simplement une adresse seule lorsque l'association est active. –