【发布时间】:2011-04-19 17:35:15
【问题描述】:
如果派生表具有复合主键,是否可以在 Entity Framework 4 中实现“每个类型的表”继承?
这是我的餐桌设置:
TABLE: ConfigurationKey (Base Entity)
PK: Id
TABLE: ConfigurationKey_Device (Derived Entity)
PK: ConfigurationKeyId (FK to ConfigurationKey.Id)
PK: DeviceId (FK to Device.Id)
不管怎样,ConfigurationKey 将是抽象的,其他类型将从 ConfigurationKey 派生。
使用 EF 设计器,我有:
- 添加了继承规则
- 从 ConfigurationKey_Device 中删除了 ConfigurationKeyId
- 删除了将 ConfigurationKey_Device 链接到 ConfigurationKey 的 FK
- 更新了 ConfigurationKey_Device.ConfigurationKeyId 列到继承的 Id 属性的映射。
我现在得到的错误是:
错误 3003:映射问题 从第 xxx 行开始的片段:所有 关键属性(ConfigurationKeys.Id) EntitySet ConfigurationKeys 必须映射到所有键 特性 (ConfigurationKey_Device.ConfigurationKeyId, ConfigurationKey_Device.DeviceId) 的 表 ConfigurationKey_Device。
谢谢, 克里斯
【问题讨论】:
-
EF 最好不要使用复合 PK。
标签: .net entity-framework inheritance