我有一個SalesOrder表和一個單獨的地址表。 SalesOrder有兩個地址 - 從而避免使用列表,還有Delivery和Invoice地址。這是他們如何在SalesOrder映射文件被映射:NHibernate/SQL Server多個外鍵到同一個表...可能嗎?
<many-to-one name="DeliveryAddress" class="Address" column="`DeliveryAddressGUID`" />
<many-to-one name="InvoiceAddress" class="Address" column="`InvoiceAddressGUID`" />
它實際上是可能有這樣的關係 - 在同一表中的另一參考兩個不同的領域。如果我刪除了「多到一個」協會之一,我可以添加地址表中,否則的話我都保持關聯,我得到以下異常:
"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
...
的錯誤是很奇怪的,因爲它不會讓我簡單地添加一個地址到地址表本身與兩個外鍵激活(這是在NHibernate中,我還沒有能夠直接與SQL Server測試)。
你能告訴我們這兩張表是什麼樣子嗎?據我所知,你應該能夠將多個外鍵引用回另一個表。 – DForck42 2010-08-24 19:26:20
感謝您的回覆。我已經爲您添加了信息,但在協會處於活動狀態時僅自行添加地址似乎仍然是個問題。 – 2010-08-24 20:00:40