2010-06-14 130 views
0

我一直在試圖爲年齡找到一個例子(因爲我無法得到它的工作我自己)一個一對多的關係示例在流暢的nHibernate中,每個子類實現的抽象類上的一對多關係的正確映射。功能NHibernate:對抽象類的表,每個子類實現的

下面舉個例子:我期待罰款的名單上的債務抽象基類映射到精類。

如果任何人的任何教程或例子,他們已經遇到之前,請讓我知道知道。

public abstract class Entity 
{ 
    public int Id { get; set; } 
} 

public abstract class Debt : Entity 
{   
    public decimal Balance { get; set; } 

    public IList<Fine> Fines { get; set; } 

    public Debt() 
    { 
     Fines = new List<Fine>(); 
    } 

} 

public class CarLoan : Debt 
{ 

} 

public class CreditCard : Debt 
{ 

} 

public class LoanApplication : Entity 
{ 
    public IList<Debt> ExistingDebts { get; set; } 

    public LoanApplication() 
    { 
     ExistingDebts = new List<Debt>(); 
    } 
} 

public class Fine 
{ 
    public Int64 Cash { get; set; } 
} 

回答

0

您能告訴我們您在哪裏遇到困難嗎?你有什麼嘗試?

顯然,你需要聲明你所有的成員都是虛擬的(我認爲這是一個在示例中的疏忽)。

基本上,不過,它應該是這樣的:

public DebtMap : ClassMap<Debt> 
{ 
    public DebtMap() 
    { 
     Id(x => x.Id); 
     HasMany(x => x.Fines); 
    } 
} 

public FineMap : ClassMap<Fine> 
{ 
    public FineMap() 
    { 
     Id(x => x.Id); 
     // map other members 
    } 
} 

public CarLoanMap : SubclassMap<CarLoan> { } 
public CreditCardMap : SubclassMap<CreditCard> { } 
+0

感謝您的幫助,但我真的只是尋找一個例子/教程在那裏我可以看到它的工作。 以上只是我想要做的一個人爲的例子。這是爲了工作,而且是相當複雜的一部分工作,除了抽象基礎上的一對多(所有虛擬部件等)之外,這些工作都很好。我們正在使用自動映射器並在必要時進行覆蓋。 所以試圖準確解釋我們在配置方面做了什麼,映射覆蓋等將使得thigs難以遵循。 這就是爲什麼我想知道是否有人知道的任何示例等 添 – 2010-06-14 16:09:22