1

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か?

4

1 に答える 1

2

IStatelessSession複数のオブジェクトを削除または更新するために使用します。IDマップがセッション/操作の速度を低下させないため、高速になります。

バッチ操作にHQLクエリを使用することもできます。

于 2012-03-07T06:19:25.947 に答える