我已经在我的数据模型中实现了一些 table-per-type 继承(基本上有一个BaseEntity
包含我的项目的所有基本信息的Employer
类型和一个从BaseEntity
项目继承的类型)。一切似乎都设置正确,并且在使用实体时(通过 ADO.net 数据服务或通过 Linq to Entities)我可以看到Employer
类型并且事情似乎很好。当我创建一个新Employer
实体并尝试保存它时,问题就开始了。
在似乎不是.AddToEmployer
项目的上下文中(只有 and AddObject
or AddToBaseEntity
)。
如果我使用AddObject("Employer", NewEmployer)
,我会收到以下错误消息:
找不到实体集名称“DataEntities.Employer”。
如果我使用AddToBaseEntity(NewEmployer)
,我会收到以下错误消息:
无法确定相关操作的有效排序。由于外键约束、模型要求或存储生成的值,可能存在依赖关系。
我是否错过了设置继承的步骤?是否有一些特定的方法来保存继承的对象?我究竟做错了什么?我认为基本问题是我应该有一个AddToEmployer
,我需要做什么才能暴露它?这似乎很奇怪,因为我可以在客户端看到 Employer 类型并且可以执行以下操作:
var NewEmployer = new Employer()
- 这似乎表明我可以很好地看到 Employer 类型。