每个层次结构的EF表(TPH)未保存,因为无法在Discriminator列中插入值null

时间:2011-09-26 16:47:57

标签: entity-framework table-per-hierarchy

我有一个用于乘法类型的表,它包含一个名为'ClassName'的Discriminator列,用于指定要加载的对象类型。 ClassName列不可为空,默认值为“Category”

我的问题是在保存新项目时,我收到错误: '无法将值null插入列ClassName'表类别。

我认为ef会将ClassName值设置为新的对象类。 如何使用正确的“ClassName”值保存我的对象?

2 个答案:

答案 0 :(得分:1)

我将我的数据库结构更改为接受null。如果对象名称与表名匹配,EF将设置为null,并将为派生类设置分离器名称。

答案 1 :(得分:0)

这是一个古老的问题,但我今天才遇到它。在.net 4.0代码中,首先我不会见到#34;免责声明列"但当降级到净3.5时,它让我累了一天。 这是我的解决方案

将数据库中的列更改为ALLOW NULL(使用alter table) 并更新edmx文件以使其更新更改(允许为空)