在我的Repository
我有这样的方法:
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
中删除对象列表(通过谓词)的建议?
答案 0 :(得分:2)
使用IStatelessSession
删除或更新多个对象。它会更快,因为身份映射不会减慢会话/操作的速度。
您还可以将HQL查询用于批处理操作。