私はFluent NHibernateと友達関係をモデル化する必要があります。私の会社のモデルは、関連会社とList<Company> Related
を持っています。企業間の関係の表に私のデータベースにモデル化され、related
次のようになります。流暢NHibernateと友人の関係
customer_id | related_id
両方のカラムは、私のcustomers
テーブル内のPKへの外部キーです。
問題は、リレーションがペアごとに1回しか保存されないということです(双方向と呼んでいますか?)。
別の方法で解決しやすい場合は、テーブル構造を変更することができます。私は、いくつかの異なる方法でこれをマップしようとした
SELECT * FROM companies LEFT JOIN related ON customer_id = id OR related_id = id
、私はきた最も近い:私はcustomer.Related()
を行うとき、それはのようなクエリを生成するように流暢NHibernateはをマッピングする必要があり
試してみました:
HasManyToMany(x => x.Related)
.Inverse()
.ParentKeyColumn("customer_id")
.ChildKeyColumn("related_id")
.Table("relations")
.Cascade.All();
ただし、これは(もちろん)customer_idが一致する場合にのみマッピングされます。
どうすれば解決できますか?
編集: Fluent NHibernate: How to create one-to-many bidirectional mapping?と似ていると思いますが、それほど助けにはなりません。
@Michael、あなたの答えに感謝します。私はすでにInverse()を持っています。または私はあなたを恋に落としていますか? – alexn