LINQ TO Nhibernate Граф - PullRequest
       30

LINQ TO Nhibernate Граф

2 голосов
/ 29 января 2010

Я пытаюсь использовать LINQ to Nhibernate для подсчета таблицы в моей базе данных. Однако код, который я запускаю, возвращает все записи в таблице по сравнению с запуском select count () из таблицы.

Вот мой код-

public int GetTotalCount(Func<T, bool> where) {

            IQueryable<T> queryable = this._sessionManager.GetCurrentSession().Linq<T>().Where(where).AsQueryable();
            return queryable.Count();

}

Я тоже пробовал -

    public int GetTotalCount(Func<T, bool> where)
    {
        IQueryable<T> queryable = this._sessionManager.GetCurrentSession().Linq<T>();
        return queryable.Count(where);
    }

Оба вытягивают весь набор данных по сравнению с подсчетом. Есть идеи?

Кроме того, я использую NHProf для профилирования, чтобы я мог выполнить запрос, который является

выберите * из таблицы

1 Ответ

6 голосов
/ 30 января 2010

Ваш параметр where должен быть Expression<Func<T, bool>>; в противном случае вы загружаете все в память и используете LINQ-to-objects.

Короче говоря:

public int GetTotalCount(Expression<Func<T, bool>> where)
{
    return _sessionManager
        .GetCurrentSession()
        .Linq<T>()
        .Where(where);
        .Count();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...