Fluent nhibernate 具有列默认值的每类复合表映射

Fluent nhibernate 具有列默认值的每类复合表映射,fluent-nhibernate,Fluent Nhibernate,您可以在TPC映射中为复合零件设置默认值吗?我有一个实体集类,如下所示: public class Employee() { public EmployeeIdentity Id; public double MonthlySalaryBase; } public class EmployeeIdentity() { public int DepartmentId; public int DepartmentEmployeeId; } publ

您可以在TPC映射中为复合零件设置默认值吗?我有一个实体集类,如下所示:

public class Employee()
{
    public EmployeeIdentity Id;       
    public double MonthlySalaryBase;
}

public class EmployeeIdentity()
{
    public int DepartmentId;
    public int DepartmentEmployeeId;
} 

public class SalesEmployee(): Employee
{
   public double ComissionRate;
}

public class ProgrammerEmployee(): Employee
{
   public int WeeklyExtraHoursAllowed;
}
public class EmployeeMap: ClassMap<Employee>
{
   public void Employee()
   {
       Table("employee");
        CompositeId().ComponentCompositeIdentifier<EmployeeIdentity)(x => x.Id).
            KeyProperty(x => x.Id.DepartmentId, "id_department").
            KeyProperty(x => x.Id.DepartmentEmployeeId, "id_department_employee_id");
        Map(x => x.MonthlySalaryBase);
   }
}

public class SalesEmployeeMap: SubclassMap<SalesEmployee>
{
   Table("sales_employee");
   KeyColumn("id_department");
   KeyColumn("id_department_employee_id");
   Map(x => x.ComissionRate)
}

public class ProgrammerEmployeeMap: SubclassMap<ProgrammerEmployee>
{
   Table("programmer_employee");
   KeyColumn("id_department");
   KeyColumn("id_department_employee_id");
   Map(x => x.WeeklyExtraHoursAllowed)
}
我用Fluent NHibernate将其映射如下:

public class Employee()
{
    public EmployeeIdentity Id;       
    public double MonthlySalaryBase;
}

public class EmployeeIdentity()
{
    public int DepartmentId;
    public int DepartmentEmployeeId;
} 

public class SalesEmployee(): Employee
{
   public double ComissionRate;
}

public class ProgrammerEmployee(): Employee
{
   public int WeeklyExtraHoursAllowed;
}
public class EmployeeMap: ClassMap<Employee>
{
   public void Employee()
   {
       Table("employee");
        CompositeId().ComponentCompositeIdentifier<EmployeeIdentity)(x => x.Id).
            KeyProperty(x => x.Id.DepartmentId, "id_department").
            KeyProperty(x => x.Id.DepartmentEmployeeId, "id_department_employee_id");
        Map(x => x.MonthlySalaryBase);
   }
}

public class SalesEmployeeMap: SubclassMap<SalesEmployee>
{
   Table("sales_employee");
   KeyColumn("id_department");
   KeyColumn("id_department_employee_id");
   Map(x => x.ComissionRate)
}

public class ProgrammerEmployeeMap: SubclassMap<ProgrammerEmployee>
{
   Table("programmer_employee");
   KeyColumn("id_department");
   KeyColumn("id_department_employee_id");
   Map(x => x.WeeklyExtraHoursAllowed)
}
公共类EmployeeMap:ClassMap
{
公职人员()
{
表(“员工”);
CompositeId().ComponentCompositeId标识符x.Id)。
KeyProperty(x=>x.Id.DepartmentId,“Id\u部门”)。
KeyProperty(x=>x.Id.DepartmentEmployeeId,“Id\u department\u employee\u Id”);
Map(x=>x.MonthlySalaryBase);
}
}
公共类SalesEmployeeMap:子类映射
{
表(“销售人员”);
KeyColumn(“id_部门”);
KeyColumn(“id、部门、员工id”);
地图(x=>x.ComissionRate)
}
公共类ProgrammerEmployeeMap:子类映射
{
表(“程序员和员工”);
KeyColumn(“id_部门”);
KeyColumn(“id、部门、员工id”);
地图(x=>x.WeeklyExtraHoursAllowed)
}

有了这个,我必须在程序员表和销售表中都有一个id_department列,但是这个列始终是相同的(所有销售员工都有相同的部门id)。我想用一个常量替换两个子类映射中id_department的KeyColumn,从而避免这两个表中的id_department列。这是可能的?

这似乎在Hibernate(Java)中支持此功能,但在NHibernate中不支持