Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 使用实体框架继承时插入失败_.net_Insert_Entity Framework 4.1_Savechanges - Fatal编程技术网

.net 使用实体框架继承时插入失败

.net 使用实体框架继承时插入失败,.net,insert,entity-framework-4.1,savechanges,.net,Insert,Entity Framework 4.1,Savechanges,我有两个表,一个名为Person的表,它是抽象的,具有标量属性“Id”和“Name”,其中键“Id”是主键。另一个名为“学生”的继承人 我使用以下代码将学生插入数据库: TestModeContainer testModel = new TestModeContainer(); Student student = testModel.CreateObject<Student>(); student.Id = "s1"; student.Grade =

我有两个表,一个名为Person的表,它是抽象的,具有标量属性“Id”和“Name”,其中键“Id”是主键。另一个名为“学生”的继承人

我使用以下代码将学生插入数据库:

    TestModeContainer testModel = new TestModeContainer();
    Student student = testModel.CreateObject<Student>();
    student.Id = "s1";
    student.Grade = "g2";
    student.Name = "Lighter.Spark";
    testModel.AddObject("PersonSet", s);

    testModel.SaveChanges();
TestModeContainer testModel=newtestmodecontainer();
Student=testModel.CreateObject();
student.Id=“s1”;
student.Grade=“g2”;
student.Name=“Lighter.Spark”;
testModel.AddObject(“PersonSet”,s);
testModel.SaveChanges();
当我调用SaveChanges将数据保存到数据库时,发生了System.data.UpdateException。内部异常表示“无法将值NULL插入到列'Id',表'Temp.dbo.PersonSet';列不允许为NULL。insert失败。\r\n语句已终止。”
谁能告诉我为什么?如何更正此问题?

Id
字段的
StoreGeneratedPattern
更改为
None
<代码>标识意味着将在数据库中设置值,并且由于应用程序中设置的值永远不会传递给数据库

您使用的是EDMX还是代码优先映射?如果打开您的
Person
实体,您在
StoreGeneratedPattern
属性中看到
Id
字段的值是什么?Id字段的StoreGeneratedPattern值是“Identity”,谢谢您的回答!我现在明白了区别。