5
問題看起來很普通,但我對fluentnhibernate很陌生,我所有的搜索都沒有發現任何有用的東西。使用鑑別子的子類的子類
我有類似這樣的類層次結構:
public class Person
{
public virtual int Id { get; protected set; }
public virtual string GivenName { get; set; }
public virtual string FamilyName { get; set; }
}
public class Employee : Person
{
public virtual string WhoAmI { get { return "I am just an Employee"; } protected set { } }
}
public class Boss : Employee
{
public override string WhoAmI { get { return "I am the boss."; } protected set { } }
}
即一個基類和兩個子類(一個來自另一個)。子類具有相同的簽名,但基類沒有。
下映射會用掉約三個類的實例的所有信息到同一個表:
public class PersonMap : ClassMap<Person>
{
public PersonMap()
{
Id(x => x.Id);
Map(x => x.GivenName);
Map(x => x.FamilyName);
DiscriminateSubClassesOnColumn("type");
}
}
public class EmployeeMap : SubclassMap<Employee>
{
public EmployeeMap()
{
Map(x => x.WhoAmI);
}
}
public class BossMap : SubclassMap<Boss>
{
public BossMap()
{
}
}
離開了DiscriminateSubClassesOnColumn將產生三個表:
public class PersonMap : ClassMap<Person>
{
public PersonMap()
{
Id(x => x.Id);
Map(x => x.GivenName);
Map(x => x.FamilyName);
}
}
public class EmployeeMap : SubclassMap<Employee>
{
public EmployeeMap()
{
Map(x => x.WhoAmI);
}
}
public class BossMap : SubclassMap<Boss>
{
public BossMap()
{
}
}
我的問題:有可能(以流利的方式)將這些類映射到恰好兩個表中,即,具有
- 一個Person表,包含從Person類派生的所有屬性,以及
- Employee表包含從Employee類派生的所有屬性,以及歧視正常員工和老闆的鑑別器?
不是。我似乎得到的都是FluentConfigurationExceptions,都使用PersonMap中的DiscriminateSubClassesOnColumn而沒有。 – nasenbohrer
什麼是異常消息? –
最內側的異常是「重複的類/實體映射Examples.FirstProject.Entities.Employee」 – nasenbohrer