2010-01-05 36 views
2

我創建了我的數據庫中的外鍵關係,這樣我可以訪問另一臺作爲一個屬性在這種情況下House.Area的LINQ to SQL:爲什麼我不能有一個零到多個基數

現在如果我創建一個房子對象,並有爲空我得到SubmitChanges()以下異常:

試圖刪除區和衆議院之間的關係。但是,關係的外鍵之一(House.AreaID)不能設置爲null。

好吧,我做上面的例子稍微簡單一些,但是在下面留言讓我覺得我應該給一個更好的例子

「豪斯醫生」表有一個連接一個名爲CityID映射到「城市」表列在CityID中,FK和CityID不能爲空

「House」表中還有一個名爲AreaID映射到連接CityID和AreaID的「Area」表的列,但AreaID可以爲null。

房子總是需要有1個城市。 1個城市可以有很多房屋。 房子可以在零或1個區域。 1區可能有零個或多個房屋。我想更新 House.City = new City(....); House.CityID確實得到一個值< - 檢查

錯誤更新

試圖刪除區和衆議院之間的關係。但是,關係的外鍵之一(House.CityID,House.AreaID)不能設置爲null。

除非更新區域覆蓋可以解釋錯誤的CityID的值。請評論。任何方式?

+0

請解釋。你的區域可能包含零個或更多的房屋?或者你的房屋可以包含零個或更多區域? – Freddy 2010-01-05 03:07:29

+0

不知道linq-to-sql,但數據庫將支持將列的可選性設置爲NULL。 – 2010-01-05 03:13:10

+2

數據庫中的列可以爲空嗎?聽起來好像不是。 – tvanfosson 2010-01-05 03:13:48

回答

3

它看起來像你的數據庫不允許該字段爲空。裝載在SQL Server企業管理器衆議院表(或任何數據庫,您正在使用的工具),並檢查areaID表示字段允許空值

+0

更新了問題 – soldieraman 2010-01-05 03:36:50

0
 /\_ 
    / \| 
    / \ 
    /  \ 
    --------- 
    | house | 
    --------- 

有脫穎而出的房子必須包含區域

+0

好1。 房子是一個地區/殖民地/郊區 地區/殖民地/郊區在一個大城市/州 – soldieraman 2010-01-05 03:37:47

+0

酷一些人得到它=) – Kieran 2010-01-05 03:46:34

0

我與獵戶座的迴應同意。此錯誤消息不是LINQ錯誤,而是數據庫提供程序錯誤。記住LINQ只是一個位於後端提供者之上的查詢語言層。

相關問題