4

次の汎用コードを使用してエンティティを保存しています。

using (ITransaction tx = session.BeginTransaction())
{
    try
    {
       entity.DateModified = DateTime.Now;
       session.SaveOrUpdate(entity);
       session.Flush();
       tx.Commit();
       return entity;
    }
    catch (Exception)
    {
       tx.Rollback();
       throw;
    }
}

BEGIN TRANSACTIONただし、SQL Profilerを見ると、SQLServerに送信されているものが表示されません。これは正常ですか、予想されますか?

4

2 に答える 2

7

プロファイラーがトランザクション情報を表示するように設定されていることを確認してください。

[Trace Properties] ダイアログ -> [Events selection] タブに、Transactions の展開があります。それを開いて、適切なボックスにチェックを入れます (または、すべてオンにします)。

また、参考までに: NHibernate を使用するアプリケーションを確認したところ、プロファイラーでのトレース中に BEGIN TRANSACTION および COMMIT TRANSACTION 呼び出しが表示されます。

于 2008-11-24T18:16:04.210 に答える
0

トランザクションをコミットしてから、セッションをフラッシュしてみてください。

于 2008-11-24T17:12:09.207 に答える