2010-02-18 39 views

Trả lời

7

Sử dụng phương thức ExecuteUpdate. Mã bên dưới sẽ thực hiện xóa hàng loạt theo lô. Điều này làm việc trong NHibernate 2.1.0. (Không chắc chắn về các phiên bản trước)

 foreach (List<int> batch in GetBatches(records, _batchSize)) 
     { 
      using (ITransaction transaction = _session.BeginTransaction()) 
      { 
       _session.CreateQuery(String.Format("DELETE FROM {0} WHERE Id IN (:idsList)", _domainObject.Name)) 
         .SetParameterList("idsList", batch.ToArray()) 
         .ExecuteUpdate(); 

       transaction.Commit(); 
      } 
     } 
Các vấn đề liên quan