有一个表A包含实体的常见无版数据。还有表B,C,D具有特定实体类型的版本化数据。所有这些表都引用了表A.
任务是添加实体类型属性的映射,例如,存储在表B中,它将引用表A,并指定一个规则如何根据表A中的标识符从表B中获取实体。 (例如,要获取实体的最新版本)。
NHibernate可以吗?
答案 0 :(得分:0)
看看艾恩德的this帖子。您可以使用每个子类的表或每个子类的表来映射它。如果选择前者,则必须在表A中添加一个鉴别器列。
答案 1 :(得分:0)
class TableA
{
public virtual int Id { get; set; }
internal virtual IList<TableB> Bs { get; set; }
public virtual TableB LatestB { get { return Bs[0]; } set { Bs.Insert(0, value); } }
}
class TableAMap : ClassMap<TableA>
{
public TableAMap()
{
HasMany(x => x.Bs)
.KeyColumn("a_id")
.OrderBy("Version desc");
}
}