我正在尝试将两个具体实体类型和一个抽象基类型映射到同一个数据库表。
该表包含一个不接受空值的位列。列有一个默认值:((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 确实有效,但我更喜欢更优雅的解决方法。