2009-08-24 2 views
0

Для моего репозитория с использованием структуры сущности я использую следующий метод для возврата IList.Сохранение моего репозитория с помощью createquery

public virtual IList<TEntity> ToList(Func<TEntity, bool> expression) 
{ 
    return Context.CreateQuery<TEntity>("[" + EntitySetName + "]") 
             .Where<TEntity>(expression).ToList(); 
} 

Параметр выражения позволяет мне изменить результат, но это не соответствует моим ожиданиям. Начиная с createquery, сначала оценивается, а затем применяется мой where. Я использую это со столами с более чем 2 милями. записей.

Есть ли у кого-нибудь решение, как сохранить общий метод, но с способностью контролировать результат без первой загрузки всех записей?

ответ

2

Вы должны изменить тип своего аргумента к одному, который может быть преобразован в SQL:

public virtual IList<TEntity> ToList(Expression<Func<TEntity, bool>> expression) 

Обратите внимание на выражение.

+0

Привет, Крейг, он работает! благодаря! – madC

Смежные вопросы