[英]Mapping a many-to-two relationship in fluent-nhibernate
我正在使用節點/鏈接結構,但是使用流暢的nhibernate映射它時遇到了問題。
這是我正在使用的類的簡化。
class Node
{
public virtual IList Links { get; set; }
}
class Link
{
public virtual Node StartNode { get; set; }
public virtual Node EndNode { get; set; }
}
一個節點可以連接許多鏈接。 鏈接必須連接到兩個節點。
而且我需要知道哪個節點是開始節點和結束節點,因此它們必須是特定的。 這就是為什么我不能使用列表並將其限制為兩個節點的原因。
有沒有人遇到這個問題並找到解決方案?
編輯:澄清問題
我不使用自動映射,而是使用顯式映射方法:References,HasMany和HasManyToMany。 基本上遵循入門教程中找到的方法: http : //wiki.fluentnhibernate.org/Getting_started#Your_first_project
我也沒有數據庫,我將使用nhibernate從映射創建數據庫架構。
我要問的是,如何建立多對二關系?
好了,沒有特殊的多對二關系,但是您可能要做的是這樣的:
public class NodeMap : ClassMap<Node>
{
public NodeMap()
{
//Id and any other fields mapped in node
HasMany(x => x.Links);
}
}
public class LinkMap : ClassMap<Link>
{
public LinkMap()
{
//Id and any other fields mapped in node
References(x => x.StartNode);
References(x => x.EndNode);
}
}
同樣,這只是上面的簡要概述。 例如,如果要級聯任何創建/更新/刪除操作,則可能需要其他映射屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.