为了简单起见,让我简化我正在工作的系统。在域中,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,它说"...you不能使用中间体“。是真的吗?如果是这样,那么EF强制我的域处于特定的设计中就太糟糕了。对我来说,这就像把数据相关的属性放在域类之上一样糟糕。还是我错过了什么?
发布于 2011-06-20 16:02:10
我也得到了这个错误。这不是一个理想的答案,但这对我来说是有效的。
导致错误的属性类型是一个小数。我在整个项目中将其转换为int,构建了解决方案,然后将其转换回decimal,错误消失了。
不知道这为什么纠正了这个问题,但它对我来说是有效的。
https://stackoverflow.com/questions/5594616
复制相似问题