摘要: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 上的討論串