簡體   English   中英

簡單的FluentNHibernate父/子映射

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM