0

我試圖映射類層次結構,看起來像這樣:映射所參考的基礎類與功能NHibernate

public abstract class A { } 
public class B : A { } 
public class C : A { } 

我不想映射A類,因爲它是抽象的,我知道我能做到:

.IgnoreBase<A>() 

不映射A和映射B和C. A的所有屬性,但我的問題是,我也有另一個類d,看起來像以下:

public class D { 
    public virtual A a { get; set; } 
} 

現在,當我嘗試使用功能NHibernate自動映射功能映射我拿到那類d是指未映射A類,但A類是通過子類B和C.

實際映射

任何人都知道如何解決錯誤這個?

回答

3

如果您不映射類A,類B和C將不會是子類。他們只是兩個根本沒有連接的類。 NHibernate對類A一無所知,所以NHibernate應該如何處理對類A的引用?

未映射A因爲它是抽象的沒有理由。你也可以映射接口。

也許,如果您向我們展示您的數據庫模型(表格),可能會更清楚您想要做什麼。