我正在将Fluent NHibernate适配到我们现有的遗留应用程序中,并试图确定如何使用ClassMap和SubclassMap来处理所示的实体层次结构。
// BaseObject contains database columns common to every table
public class BaseObject
{
// does NOT contain database id column
public string CommonDbCol1 { get; set; }
public string CommonDbCol2 { get; set; }
// ...
}
public class Entity1 : BaseObject
{
public int Entity1Id { get; set; }
// other Entity1 properties
}
public class Entity2 : BaseObject
{
public int Entity2Id { get; set; }
// other Entity2 properties
}
Entity1和Entity2的身份列在每个表中都有唯一的名称。BaseObject包含所有实体共有的列。我没有使用AutoMapping,认为可以在BaseObject上使用ClassMap,然后在每个实体上使用SubclassMap,就像这样:
public class Entity1Map : SubclassMap<Entity1>
{
public Entity1Map()
{
Id(x => x.Entity1Id);
// ...
}
}
问题是,SubclassMap没有定义Id()方法。那么,在每个Entity1Map、Entity2Map等中(我们有100多个实体类都继承自BaseObject),我如何指定特定实体的Id?谢谢提前提供任何见解!