【发布时间】:2011-08-01 11:09:09
【问题描述】:
为了简单起见,让我简化我正在处理的系统。在领域中,A 类派生自 B 类,B 类派生自 C。
A : B
{
a1, a2 //class members
}
B : C
{
b1
}
C
{
c1
}
A 的配置如下:
class CConfig : EntityTypeConfiguration<A>
{
public DocumentConfiguration()
{
Map(x => x.MapInheritedProperties()).ToTable("DOCUMENT");
}
}
现在,运行代码给出了这个错误:
属性“b1”不是类型“A”的声明属性。使用 Ignore 方法或 NotMappedAttribute 数据注释验证该属性是否已从模型中显式排除。确保它是一个有效的原始属性。
为什么会出现这个错误?
http://social.msdn.microsoft.com/Forums/sv-SE/adodotnetentityframework/thread/f89d1df5-3b1f-413d-a077-d354abf4cca6 上写着“...你不能使用中间体”。这是真的吗?如果是,那么 EF 强制我的域处于特定设计中就太糟糕了。对我来说,这就像将与数据相关的属性放在域类之上一样糟糕。还是我错过了什么?
【问题讨论】:
-
您没有显示所有代码。这应该有效。链接的问题是关于具有不同问题的不同类型的继承。
标签: entity-framework inheritance mapping entity-framework-4.1