我已经多年努力找到一个示例(因为我无法让自己工作)在每个子类的表实现的抽象类上实现一对多关系的正确映射,流利的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; }
}
答案 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> { }