【问题标题】:Entity Framework 4.1 Code First TPC problemEntity Framework 4.1 Code First TPC 问题
【发布时间】: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


【解决方案1】:

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

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

不知道为什么这可以解决问题,但它对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 2011-09-19
    • 2011-08-01
    • 1970-01-01
    相关资源
    最近更新 更多