2010-12-27 4 views
0

親オブジェクトに子オブジェクトのコレクションを保存(挿入)しようとしています。私は手動で\更新を保存するかどうかを指定することを好みます。そうすれば、カスケードを使用せずに、マッピングとフラッシュセッションを自分で行うことができます。だから、基本的に私は次のようにこのオブジェクトグラフを保存します。私は、それぞれの子行が、その後、このコードは、親行を挿入することを期待NHibernateの親子で保存された冗長なSQLの更新を実行しました

session.Save(Parent) 
foreach (var child in Parent.Childs) 
{ 
session.Save(child); 
} 
session.Flush() 

、しかしNHibernateのは、このSQLを実行します。

INSERT INTO PARENT.... 
INSERT INTO CHILD .... 
UPDATE CHILD SET [email protected] WHERE [email protected] //What the point of update if ParentId was set in previous query 

この更新ステートメントは、絶対に不要ですParentIdは既にINSERTで正しく設定されています。どのように私はそれを取り除くのですか?パフォーマンスは私にとって非常に重要です。

+1

これを確認すると、役立つことがありますhttp://stackoverflow.com/questions/4315791/nhibernate-sets-foreign-key-in-secondary-update-rather-than-on-initial-insert-vio –

+0

あなたは何ですか?マッピング? –

+0

@ジャニ:それは本当に助けてくれました、ありがとう。 –

答えて

0

多対1コレクションのマッピングで「逆」を忘れました。

関連する問題