0
有一個表A包含實體的通用未版本化數據。還有表B,C,D和特定實體類型的版本化數據。所有這些表都參考表A.NHibernate複雜的一對一映射
任務是添加一個實體類型屬性的映射,例如存儲在表B中的引用表A的指針,並指定實體應該如何獲取的規則從表B基於來自表A的標識符(例如,獲取實體的最新版本)。
它可能與NHibernate?
有一個表A包含實體的通用未版本化數據。還有表B,C,D和特定實體類型的版本化數據。所有這些表都參考表A.NHibernate複雜的一對一映射
任務是添加一個實體類型屬性的映射,例如存儲在表B中的引用表A的指針,並指定實體應該如何獲取的規則從表B基於來自表A的標識符(例如,獲取實體的最新版本)。
它可能與NHibernate?
看看Ayende發佈的this。您可以使用每個層次的表或每個子類的表來映射此表。如果您選擇前者,則必須在表A中添加鑑別器列。
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");
}
}