2012-03-07 66 views
1

多个对象在我Repository我有一个方法是这样的:删除NHibernate的3.2

public int Delete(Expression<Func<TEntity, bool>> predicate) { 
    var listToDelete = UnitOfWork.Session.Query<TEntity>().Where(predicate).ToList(); 
    foreach(var item in listToDelete) 
     UnitOfWork.Session.Delete(item); 
    return listToDelete.Count; 
} 

但看起来这个方法并没有出色的表现!您有任何建议,请删除NHibernate 3.2中的对象列表(由谓词)吗?

回答

2

使用IStatelessSession删除或更新多个对象。它会更快,因为身份地图不会减慢会话/操作。

您也可以使用HQL查询进行批处理操作。

+0

我是NHibernate的新手;你能举个例子吗?谢谢 – 2012-03-07 10:49:26

+0

无状态会话:http://nhforge.org/blogs/nhibernate/archive/2008/10/30/bulk-data-operations-with-nhibernate-s-stateless-sessions.aspx – 2012-03-07 17:09:31

+0

HQL:http:// stackoverflow的.com /一个/395359分之1869113 – 2012-03-07 17:10:14