Entity Framework 的 Master – Detail FK 的設定問題 (2)

摘要:Entity Framework 的 Master – Detail FK 的設定問題 (2)

重新驗證其內容後

當在 FK 的欄位上設定為 not null 後,其 SSDL 中會加上 Nullable = false

CSDL 中的關聯中卻會將 Multiplicity 強制改成 1  (原本應該是 0..1)

很神奇的是!

在 edmx 的畫面上卻還是 0..1  , 但背後的 xml 卻已經不一樣了。  ( 難怪之前一直看不出來 orz )

另外,在 CSDL 的關聯定義是「雙向驗證」

即使我好心把關聯改回成 0..1 就會出現 edmx 的驗證無法通過的錯誤

這個怎麼看都很像是在關聯式的欄位判斷上出現了問題

目前小弟的結論是 FK 的欄位暫先不要加上 not null 的作法,以維持關聯的正確性

 

--------

「 錯誤    1    錯誤 113: 在關聯性 'WorkDetail_FK_WorkID' 中,Multiplicity 與 Role 'Work' 中的參考條件約束衝突。因為 Dependent Role 的一個或所有屬性不可為 Null,所以 Principal Role 多重性的必須是 '1'。    C:\TFSSingle2008\Franma_WorkSpace\MSAgile\Src\PrintStoreAP\DAL\PrirtDBEntities.edmx    508    11    DAL 」

 

在MSDN 上的討論串

http://social.msdn.microsoft.com/Forums/zh-TW/238/thread/3f569e3f-cd61-4bf0-a65c-5c2d02f4842e?prof=required