0

NHibernate で奇妙な動作が発生しています。セッションとトランザクションがどのように機能するかを誤解しているだけなのかどうかはわかりません。

動作は、セッションを開いて、そのセッションのトランザクションを開始することです。次に、セッションを使用してオブジェクトのコレクションを取得し、何らかの方法でオブジェクトを操作してから、トランザクションをコミットします。このプロセスのどの時点でも、セッションで Save または Update を呼び出していませんが、セッション内のオブジェクトの状態を暗黙的に保存しています。

これは適切な動作ですか?セッションにラッパーを使用しているため、常にトランザクションを開いてコミットします。

4

1 に答える 1

2

Flush、FlushMode、および IsDirty を見てください。これは、コレクションを操作する場合に一般的です。

コレクション内のアイテムを変更したり、ポインターをあるコレクションから新しいコレクションに変更したりすると、Nhibernate はフラッシュ時に IsDirty をスキャンします。

于 2012-07-17T16:15:49.973 に答える