0

を使用していくつかのオブジェクトをロードしますISession.Query<T>.ToList()。次に、を使用してループでそれらのいくつかを削除しようとしますISession.Delete()

クエリと削除に同じセッションが使用されますが、何も削除されません。DELETE ステートメントを含む SQL は実行されません。例外はスローされません。オブジェクトが削除されないのはなぜですか? また、親コレクションにも含まれていないようです。

4

1 に答える 1

1

トランザクションを使用している場合は、 を呼び出す必要があります。transaction.Commit()それ以外の場合は、 を呼び出す必要がありますsession.Flush()

何らかの理由でトランザクションを使用していない場合は、そうしないと、削除の一部が失敗した場合に、データベース内のデータに一貫性がなくなる可能性があります。

于 2012-11-05T15:41:57.510 に答える