开发者

session.BeginTransaction() and transaction.Commit()

开发者 https://www.devze.com 2022-12-09 18:46 出处:网络
I am new to Nhibernate, so my query may seem trivial to you. We generally embed data operation code inside

I am new to Nhibernate, so my query may seem trivial to you.

We generally embed data operation code inside

  using (var session = sessionFactory.OpenSession())
  {
    using (var transaction = session.BeginTransaction())
    {
       ...Code for CRUD operat开发者_如何学JAVAions
       transaction.Commit();
    }
  }

Because we generally BeginTransaction/Commit/Rollback for saving/updating/deleting data,

I wonder if BeginTransaction() and Commit() are required even if I am retriving data using session.Get<T>(id); or session.CreateCriteria<T>().List();

Please guide.

Thank you!


No, you can't do data retrieval without transaction; all NH operations are transaction-centric.

Read this article by Ayende Rahien.


You should always use transactions in queries. Not only for the performance but also for concurrency reasons, and Ayende says about it.

His Hibernate profiler shows and alert if you use queries not in transaction scope.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号