[英]Simple FluentNHibernate parent/child mapping
FluentNHibernate = D的新手
我有一個父母/孩子類,如下所示:
public class Parent
{
public virtual int ID { get; private set; }
public virtual string Name { get; set; }
public virtual IList<Child> Children { get; set; }
}
public class Child
{
public virtual int ID { get; private set; }
public virtual string Name { get; set; }
public virtual Parent ActiveParent { get; set; }
}
具有以下內容的映射:
public ParentMap()
{
Id(x => x.ID);
Map(x => x.Name);
HasMany(x => x.Children)
.Inverse();
.Cascade.All();
}
public ChildMap()
{
Id(x => x.ID);
Map(x => x.Name);
//Map(x => x.ActiveParent)
// .Column(ParentID);
}
子地圖的被注釋掉的區域是我當前遇到的問題。 我希望能夠創建一個子對象並調用其父對象(即someChild.ActiveParent),但是不確定如何通過流暢的界面來映射它。
子表的表結構包含一個父代標識,目的是在調用時延遲加載父對象。 任何幫助總是很感激。
References(x => x.Parent);
添加到mxmissile的答案中,您將需要在References()
調用的末尾添加一個LazyLoad()
,並且您可能還想在配置中執行以下操作:
.Mappings(m =>
m.FluentMappings.AddFromAssemblyOf<ParentMap>()
.ConventionDiscovery.Add(ForeignKey.EndsWith("ID")))
最后一行指示Fluent NHibernate期望使用類似於ParentID
外鍵,而不是默認鍵( Parent_Id
?),因此您不再需要在每個關系映射中顯式指定列名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.