Nhibernate 氟纤维酸盐。我需要将hasmany关系映射到连接的子类实体类型
我正在努力让这个FluentNHibernate映射生效。我有三张桌子:个人、雇员和雇主。Employee表扩展了Person表的属性,它的主键是Person表的外键 Employee表还有一个指向Employer表的外键。一个雇主可以有许多雇员,每个雇员都是一个人 我使用FluentNHibernate来映射这三个表。我使用了Employee->Person的联接子类映射 我正试图获得一个工作映射,这样我就可以让雇主及其关联的雇员立即抓取,但是生成的select语句在Employee表good和Person表bad上选择EmployerId,从而导致错误,请参见下文 选择employees0。EmployeerID作为Employee5\u 2\u,employees0\u。 如:如:(1)如:(1)如:(1)如:(1)如:(1)如:(1)如:(1)如:(1)如:(1)如:(1)如:(1)如:(1)如:(1)如:(1)如:(1)如:(1)如:(1)如:(1)如:(1)如:(1)如:(1)如:(1)如 姓名为FirstName1_1_,员工0_。姓氏为LastName1_1_,员工0_1_。PayRat e作为工资率2,雇员0,雇员ID作为雇员2,雇员1,雇员 rId作为雇员0,雇员1。姓名作为姓名0,来自[Person]雇员0 t在employees0.PersonId=employees0.1.Employ上外部加入employees0\u 1\u eeId左外联接[雇主]雇主1在雇主0上。雇主ID=雇主1 .EmployerId其中employees0.Employee.EmployerId=@p0@p0=1 请在下面找到模式、类和流映射。我做错了什么 我为这些表定义了如下类:Nhibernate 氟纤维酸盐。我需要将hasmany关系映射到连接的子类实体类型,nhibernate,fluent-nhibernate,nhibernate-mapping,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,我正在努力让这个FluentNHibernate映射生效。我有三张桌子:个人、雇员和雇主。Employee表扩展了Person表的属性,它的主键是Person表的外键 Employee表还有一个指向Employer表的外键。一个雇主可以有许多雇员,每个雇员都是一个人 我使用FluentNHibernate来映射这三个表。我使用了Employee->Person的联接子类映射 我正试图获得一个工作映射,这样我就可以让雇主及其关联的雇员立即抓取,但是生成的select语句在Employee表good
public class Person
{
public int PersonId { get; set; }
public string PersonClassification { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Employer
{
public int EmployerId { get; set; }
public string Name { get; set; }
public IList<Employee> Employees { get; set; }
}
public class Employee : Person
{
public Employer Employer { get; set; }
public decimal PayRate { get; set; }
}
public class PersonMap : ClassMap<Person>
{
public PersonMap()
{
Id(x => x.PersonId).Column("PersonId").GeneratedBy.Identity();
Map(x => x.FirstName);
Map(x => x.LastName);
DiscriminateSubClassesOnColumn("PersonClassification");
}
}
public class EmployeeMap : SubclassMap<Employee>
{
public EmployeeMap()
{
this.DiscriminatorValue("Employee");
Join
(
"Employee",
join =>
{
join.Optional();
join.KeyColumn("EmployeeId");
join.Map(x => x.PayRate);
join.References(x => x.Employer).Column("EmployerId");
}
);
}
}
public class EmployerMap : ClassMap<Employer>
{
public EmployerMap()
{
Id(x => x.EmployerId).Column("EmployerId").GeneratedBy.Identity();
Map(x => x.Name);
HasMany(x => x.Employees).KeyColumn("Employee.EmployerId");
}
}
8个月后,您可能不再关心了,但您是否也可以发布用于执行查询的代码—生成上述SQL的查询?谢谢。8个月后,您可能不再关心了,但您是否也可以发布用于执行查询的代码—生成上述SQL的查询?谢谢