0

为了简单起见,让我简化我正在开发的系统。域,类A从B类派生和B从C.实体框架4.1代码第一个TPC问题

派生
A : B 
{ 
    a1, a2 //class members 
} 

B : C 
{ 
    b1 
} 

C 
{ 
    c1 
} 

用于配置是这样的:

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它说“...你不能使用中间体”。这是真的吗?如果是这样,那么英菲就会强迫我的领域进入特定的设计。对我来说,将数据相关属性放在域类顶部是一样糟糕的。或者我错过了什么?

+0

您没有显示所有代码。这应该工作。链接的问题是关于具有不同问题的不同类型的继承。 – 2011-04-10 21:03:51

回答

0

我也有这个错误。这不是一个理想的答案,但这是什么对我来说...

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

不知道为什么这改正了这个问题,但它对我有用。

相关问题