私は、テーブルAオブジェクトがいくつかのテーブルBレコードを1対多のものとしてマッピングする必要があるが、テーブルBは、それを1対多にする。これは、従来の他のレガシープログラムのために簡単に変更できないレガシーデータベース構造です。Nhibernateでは、外部キー列以外のマッピングの他の基準を使用して、1対多になるものをさらに制限できますか?
TableBPKey (int not null)
TableAFKey (int not null)
TableBColumn1 (char(4) null)
TableBColumn2 (varchar(50) null)
はTableBColumn1レコードが何らかの方法でテーブルBのレコードを分類する「N」4文字コードのいずれかを含む可能性があるとしましょう:
は、テーブルBは、次のようになりますと言うことができます。
とにかく、既にTableAFKey列を使用して1にマッピングしているとします。私はまた、それらのレコードがTableBColumn1 == "ABCD"の場合にのみ必要であることをマッピングに伝えることはできますか?
コードによるマッピングを使用するものはどれも望ましい解決策です。古いxmlマッピングではできますが、コードでマッピングすることはできませんが、これも解決策として使用します。
ありがとうございます!
ページは、多くののためであることを確認してくださいhttp://stackoverflow.com/questions/1898303/nhibernate-where-clause-on-one-to-many-relationships-doesnt-work-when-column-n – Eranga