簡體   English   中英

在流利的休眠模式中映射多對二關系

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

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