【发布时间】:2011-04-16 20:26:07
【问题描述】:
使用 NHibernate 加载集合和更新所有项目的最佳方法是什么。当前代码加载 50 个对象并在其自己的事务中处理每个对象(如果 1 个失败,则其他都可以)。
NH Profiler 说每个会话有太多的 sql 查询。
毕竟,你觉得这段代码怎么样?
using (var session = sessionFactory.OpenSession())
{
var myCollection =
(from obj in session.Query<MyObject>()
select obj).Take(50);
foreach (var item in myCollection)
{
using (var tx = session.BeginTransaction())
{
try
{
// Do some stuff...
session.Update(item);
tx.Commit();
}
catch (Exception)
{
tx.Rollback();
}
}
}
}
【问题讨论】:
标签: nhibernate