.net 使用实体框架继承时插入失败
我有两个表,一个名为Person的表,它是抽象的,具有标量属性“Id”和“Name”,其中键“Id”是主键。另一个名为“学生”的继承人 我使用以下代码将学生插入数据库:.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 =
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”,谢谢您的回答!我现在明白了区别。