【发布时间】:2011-07-08 16:53:23
【问题描述】:
我有两个表,一个名为 Person,它是抽象的,具有标量属性“Id”和“Name”,其中键“Id”是主键。另一个名为“Student”的继承自 Person
我使用以下代码将学生插入数据库:
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';列不允许空值。INSERT 失败。\r\n语句已终止。” 谁能告诉我为什么?以及如何纠正这个问题?
【问题讨论】:
-
您使用的是 EDMX 还是代码优先映射?
-
如果您打开您的
Person实体,您在StoreGeneratedPattern的Id字段的属性中看到什么值? -
Id 字段的 StoreGeneratedPattern 值为“Identity”
标签: .net insert entity-framework-4.1 savechanges