我正在使用每个层次结构表的方法尝试VS 2010 .NET 4 + EF继承。
我的课程 A定义为抽象和类B和C具体实现A 。 B和C没有属性(尚未)。属性映射在A中定义。我还定义了鉴别器(int类型),因此EF可以判断B和C之间的差异。
我遇到的问题是,当我尝试保存B或C的实例时,我收到以下错误: 只有在属性的当前值为null时才能设置EntityKey属性。
这是我正在运行的代码:
A newInstance = CreateB(...); //creates a B type instance and assigns properties.
using (var context = new myObjectContext())
{
context.ASet.AddObject(newInstance);
int changes = context.SaveChanges();
}
此行发生错误:
context.ASet.AddObject(的newInstance);
使用调试模式我发现newInstance.EntityKey设置了一个值,我认为这是错误的。
有没有人知道为什么EntityKey在处理继承时有一个除null之外的值,而在没有涉及继承时就是null(即独立实体)?
我可以做些什么来完成这项工作?
感谢。