私はテーブルを持っcustomer
ています。テーブル内の外部キーです。ここでは、1 対多の関係を処理する必要があります。と のマッピングを行いました。質問投稿を添付しました。BankAccount
CustomerID
BankAccount
CustomerInfo
BankAccountInfo
ここでは、 を使用してコレクションを行いたいと考えていますIesi.collections
。Nhibernate でこれを行う方法についてアイデアを持っている人はいますか?
私はテーブルを持っcustomer
ています。テーブル内の外部キーです。ここでは、1 対多の関係を処理する必要があります。と のマッピングを行いました。質問投稿を添付しました。BankAccount
CustomerID
BankAccount
CustomerInfo
BankAccountInfo
ここでは、 を使用してコレクションを行いたいと考えていますIesi.collections
。Nhibernate でこれを行う方法についてアイデアを持っている人はいますか?
コレクションマッピングを行うには、このドキュメントを読み始めます:第 6 章コレクション マッピング
Iesi
コレクションを使用する場合、ISet<>
一意の値のみを挿入できるように設計された が最も適しています。
public class Customer
{
public virtual Iesi.Collections.Generic.ISet<BankAccount> BankAccounts { get; set; }
}
そして、マッピングは次のようになります
<set name="BankAccounts" inverse="true" lazy="true" table="BankAccount"
cascade="all" batch-size="25" >
<key column="CustomerId" />
<one-to-many class="BankAccount" />
</set>
注: このマッピングには冗長な属性がいくつかあり、よりスマートな読み込みを行うのに役立ちます。たとえば、batch-size は 1+N の読み込みを回避しますが、1 + N/25 を実行します... cascade は、追加されたアイテムの永続性を暗黙的に解決します... 詳しくはドキュメントを参照してください。
完全な ISet の説明: http://ayende.com/blog/3943/nhibernate-mapping-set