2010-06-14 125 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