2010-08-24 80 views
0

我有一個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測試)。

+0

你能告訴我們這兩張表是什麼樣子嗎?據我所知,你應該能夠將多個外鍵引用回另一個表。 – DForck42 2010-08-24 19:26:20

+0

感謝您的回覆。我已經爲您添加了信息,但在協會處於活動狀態時僅自行添加地址似乎仍然是個問題。 – 2010-08-24 20:00:40

回答

1

你檢查過,以確保在父表中的那些條目?

+0

我認爲級聯是這樣做的,顯然不是。謝謝你的幫助。 – 2010-08-25 09:24:54

+0

有時它是最簡單的事情。 – DForck42 2010-08-25 21:24:35

相關問題