Fluent NHibernate:每个子类表的实现的抽象类上的一对多关系的示例

时间:2010-06-14 15:28:24

标签: nhibernate fluent-nhibernate nhibernate-mapping

我已经多年努力找到一个示例(因为我无法让自己工作)在每个子类的表实现的抽象类上实现一对多关系的正确映射,流利的nHibernate。

以下示例:我希望将Debt抽象基类上的罚款列表映射到Fine类。

如果有人知道他们之前遇到的任何教程或示例,请告诉我。

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; }
}

1 个答案:

答案 0 :(得分: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> { }