1

新しいアプリケーションでコードによるマッピングを使用していますが、従来のモデルマッパーで奇妙な動作が見られます。私の1..N関係の1つを除いてすべてをバッグとして選択し、1つをセットとして選択しています。私が見る限り、それらはすべて基本的に同じ方法で宣言されています。さらに、BeforeMapSetのイベントハンドラーを設定しないと、適切なBeforeMapManyToOneハンドラーが起動されません。

4

1 に答える 1

1

このXMLようにマッピングはより明確になり、通常はIList<>をに<bag>マップISetします<set>。Fluentエンジン(バージョン1.2以降)が同じことをどのように行おうとしているのかという説明があります。

https://github.com/jagregory/fluent-nhibernate/wiki/Fluent-mapping

(セクションHasMany / 1対多/コレクションタイプを参照)

上記のリンクからの抜粋:

public IList<Child> Children { get; set; }    
HasMany(x => x.Children); // <bag />


private ISet<Child> _children;    
public IEnumerable<Child> Children
{
  get { return _children; }
}

HasMany(x => x.Children); // <set access="nosetter.camelcase-underscore" />


private ISet<Child> _children;    
public IEnumerable<Child> GetChildren()
{
  return _children;
}

HasMany(x => x.GetChildren()); // <set name="_children" access="field" />

ですから、マッピングにおけるあなたの「小さな違い」はそこに隠されているのではないかと思います

于 2012-11-14T07:07:22.823 に答える