我有两个表,一个名为Person,它是抽象的,具有标量属性"Id"one_answers"Name",其中键"Id"是主键。另一个名为"Student"继承自Person
我使用下面的代码插入一个学生到db:
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();
当我调用SaveChanges将数据保存到数据库时,发生了System.Data.UpdateException。内部异常说"不能插入值NULL到列'Id',表'Temp.dbo.PersonSet';列不允许为空。插入失败。rn语句已被终止。"谁能告诉我为什么?如何纠正这一点呢?
将Id
字段的StoreGeneratedPattern
更改为None
。Identity
意味着值将在数据库中设置,因为应用程序中设置的值永远不会传递给数据库。