2012-03-07 67 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