我想为没有鉴别器的同一个表创建两个实体。 让我们知道我的表代表Person,我想创建2个实体类:Person 和PersonExt。 Person将包含大多数表列,如:name,Age,Adress ext。和PersonExt类 将从Person类中吸入,并将包含到Person Table中其余列的mappinge。我不想为PersonExt创建一个额外的映射文件,该文件将再次映射到所有Person文件 - 但只是映射到我尚未映射到的其余列。 NHibrnate有可能吗?如果是的话,你能解释一下吗?
Public Class Person
{
public virtual string Name {get;set;}
public virtual int Age {get;set;}
public virtual string Address{get;set;}
}
Public class PersonExt:Person
{
public virtual int NumOfChildren {get;set;}
public virtual string FamilyStatus {get;set;}
......
}
答案 0 :(得分:0)
是的,使用Fluent映射。 e.g。
public abstract class PersonBaseMap<TPerson> : ClassMap<TPerson> where TPerson : Person
{
public PersonBaseMap()
{
Map(p => p.Name);
Map(p => p.Age);
Map(p => p.Address);
}
}
public class PersonMap : PersonBaseMap<Person>
{
}
public class PersonExtMap : PersonBaseMap<PersonExt>
{
public PersonExtMap()
{
Map(p => p.NumOfChildren);
Map(p => p.FamilyStatus);
}
}