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,構建瞭解決方案,然後將其轉換回十進制,錯誤消失。

不知道爲什麼這改正了這個問題,但它對我有用。