Fluent nhibernate Fluent NHibernate映射继承类

Fluent nhibernate Fluent NHibernate映射继承类,fluent-nhibernate,nhibernate-mapping,Fluent Nhibernate,Nhibernate Mapping,目前正在处理一个遗留应用程序,我们正在用NHibernate替换数据访问,因为旧的数据访问没有进行快速/延迟加载,系统的一些部分正在进行2000多次查询以创建关系 一切都很好,只是我完全不知道如何绘制一个场景 我们有“转移”和“多资源转移” public class Shift { public int Id { get; protected set; } public string EmployeeName { get; set; } public IEnumerabl

目前正在处理一个遗留应用程序,我们正在用NHibernate替换数据访问,因为旧的数据访问没有进行快速/延迟加载,系统的一些部分正在进行2000多次查询以创建关系

一切都很好,只是我完全不知道如何绘制一个场景

我们有“转移”和“多资源转移”

public class Shift
{
    public int Id { get; protected set; }
    public string EmployeeName { get; set; }
    public IEnumerable Breaks { get; set; }
    ...
}
另一方面,多资源转移实际上是一种转移,可以分配多个员工

public MultiResourceShift : Shift
{
    public IEnumerable Employees { get; set; }
    public bool IsMultiResource { get; set; }
}
数据库结构映射为一对多,如:

+--------------------+ | Shift | +--------------------+ | ShiftId | | EmployeeName | | IsMultiResource | | ... | +--------------------+ +--------------------+ | MultiResourceShift | +--------------------+ | MultiResourceId | | ShiftId | | EmployeeId | | ... | +--------------------+ 理想情况下,需要在结果返回移位集合或MultiResourceShifts的地方查询该值

目前,这是通过迭代读卡器来实现的,如果是班次,则映射并添加到集合中;如果是多资源,则创建一个多资源班次实例,并根据班次数据对其进行填充,加载员工,然后将其添加到集合中

任何人都知道如果这是可能的,我将如何映射和查询它

NH博客上的这篇博文正是我所追求的,并且解决了这个问题。我们稍微改变了我们的模型来创建鉴别器