为了简单起见,我简化了我正在处理的系统。在域中,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强迫我的域名处于特定设计中太糟糕了。对我而言,将数据相关属性放在域类之上就好了。或者我错过了什么?
答案 0 :(得分:0)
我也遇到了这个错误。这不是一个理想的答案,但这对我有用......
导致错误的我的属性类型是小数。我在整个项目中将其转换为int,构建了解决方案,然后将其转换回十进制并且错误消失了。
不确定为什么这会纠正这个问题,但它对我有用。