我有一个SalesOrder表和一个单独的Address表。 SalesOrder有两个地址 - 因此避免使用列表,有交货和发票地址。这是它们在SalesOrder映射文件中的映射方式:
<many-to-one name="DeliveryAddress" class="Address" column="`DeliveryAddressGUID`" />
<many-to-one name="InvoiceAddress" class="Address" column="`InvoiceAddressGUID`" />
实际上是否可能有这种关系 - 同一个表中的两个单独的字段引用另一个。如果我删除其中一个“多对一”关联,我可以向表中添加Address,否则如果我保持两个关联,我会得到以下异常:
"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."
我做错了吗?
由于
修改 这些是两个表格的相关部分:
SalesOrder
------------
Guid
DeiveryAddressGuid
InvoiceAddressGuid
...
Address
------------
Guid
HouseNameOrNumber
AddressLine1
AddressLine2
...
这个错误真的很奇怪,因为它不会让我自己简单地将一个地址添加到Address表中,并且两个外键都处于活动状态(这是在NHibernate中,我无法直接用SQL Server测试它)
答案 0 :(得分:1)
您是否检查过以确保父表中的这两个条目?