2010-12-29 11 views
1

これは前に何度もやったことですが、私の心は今現時点では空白になっています。私は現在の状況を簡単に概観します。NHibernateとの結合テーブルによるマッピング要素

以下に示すように、私は現在、3つのテーブルを有する:

Office > id, name 
Person > id, name 
Office_Personnel > office_id, person_id 

Iは、次に人(ID、名前)およびOfficeのモデルは、しかし、オフィスモデルは、人事情報が含まれた:

public class Office 
{ 
int Id {get;set;} 
string Name {get;set;} 
ICollection<Person> Personnel {get;set;} 
} 

マッピングの担当者は簡単ですが、なぜ今オフィスが正しくマップされていないのかが分かりません。私は...しかし、私が期待するように動作していないようです、私は任意の重複があってはならないとして、人事をマッピングされたセットを使用することを選択したとして私を打つ一つのこと今

<set name="Personnel" table="office_personnel" cascade="all"> 
    <key column="office_id" /> 
    <one-to-many class="Person"/> 
</set> 

奇妙なのは、どの人が拘束されるべきかについての指示(person_id)がないということです。 Personテーブル内の* office_id *カラムを検索しようとします。

私はこれが単なる単純な問題であると確信していますが、私は馬鹿ですが、どんな助けも素晴らしいでしょう!

サイドノートでは、私は私が直接、Personテーブル内Office_Id列を置くことができるよう、私も、真ん中の男テーブルを持つ気にする必要がある場合、最大計量されましたが、私の本当であればイムは100%でないことを確認

Person 1 <-> n Personnel n <-> 1 Office 

または多対としてマップ:Personクラスは、さらにラインの下の複数のオフィスで可能性がありプロジェクト...これを正しくマッピングするために

答えて

1

、あなたはどちらか3つのエンティティを持っている必要があります結合テーブルを使用した多対多の関連付け(休止状態のdoの8.3節を参照) cs)

Person n <-> n Office 
+0

後者の方が適切です。 –

関連する問題