我想將兩個具體實體類型和抽象基類型映射到同一個數據庫表。對實體框架4中的未映射位列使用DB默認值(數據庫優先)
該表包含一個不接受空值的位列。列有一個默認值:((0))。
只有兩個具體實體類型(即具體類型1)中的一個需要使用該列的值(對於另一個(即具體類型2),它總是爲false)。
我嘗試添加映射到該列的屬性只需要它 和
當我打電話的SaveChanges我得到一個UpdateException,在其最內側的異常以下消息的實體類型:
「的列不能包含空值[列名= MY_BIT_COLUMN,表名稱= MY_TABLE]。」
我已經編輯的EDMX的SSDL部和改變:
<Property Name="MY_BIT_COLUMN" Type="bit" Nullable="false" />
到:
<Property Name="MY_BIT_COLUMN" Type="bit" Nullable="false" DefaultValue="false" />
(如果沒有這個變化映射失敗 - 將無法運行)
有什麼辦法來解決這個問題而無需添加映射到該列的屬性到第二混凝土實體鍵入或將其移動到基本類型?
將受保護的屬性添加到具體類型2中的確行得通,但我更喜歡更優雅的解決方法。
所以一旦你添加DefaultValue到SSDL它仍然會拋出異常? – 2011-05-03 20:03:52
是的,它編譯,但在運行時失敗。 – 2011-05-03 22:23:03