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で正しく設定されています。どのように私はそれを取り除くのですか?パフォーマンスは私にとって非常に重要です。
これを確認すると、役立つことがありますhttp://stackoverflow.com/questions/4315791/nhibernate-sets-foreign-key-in-secondary-update-rather-than-on-initial-insert-vio –
あなたは何ですか?マッピング? –
@ジャニ:それは本当に助けてくれました、ありがとう。 –