Fluent nhibernate 具有列默认值的每类复合表映射
您可以在TPC映射中为复合零件设置默认值吗?我有一个实体集类,如下所示: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
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中不支持