实体框架4.1代码第一个TPC问题

时间:2011-04-08 11:50:02

标签: entity-framework inheritance mapping entity-framework-4.1

为了简单起见,我简化了我正在处理的系统。在域中,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强迫我的域名处于特定设计中太糟糕了。对我而言,将数据相关属性放在域类之上就好了。或者我错过了什么?

1 个答案:

答案 0 :(得分:0)

我也遇到了这个错误。这不是一个理想的答案,但这对我有用......

导致错误的我的属性类型是小数。我在整个项目中将其转换为int,构建了解决方案,然后将其转换回十进制并且错误消失了。

不确定为什么这会纠正这个问题,但它对我有用。