Удалить несколько объектов в NHibernate 3.2 - PullRequest
1 голос
/ 07 марта 2012

В моем 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, пожалуйста?

1 Ответ

2 голосов
/ 07 марта 2012

Используйте IStatelessSession для удаления или обновления нескольких объектов. Это будет быстрее, потому что карта идентификации не будет замедлять сеанс / операции.

Вы также можете использовать HQL-запросы для пакетных операций.

...