Как заменить выражение> в предложение where выражения linq to sql - PullRequest
2 голосов
/ 28 апреля 2011

Я хотел бы установить следующий предикат для предложения where оператора linq, записанного в синтаксисе выражения.

Expression<Func<Purchase, bool>> condition = p => p.Price > 100;

from purchase in dc.GetTable<Purchase>()
where condition
select ...

Однако компилятор не может определить, где использовать: IQuaryable <> или IEnumerable <>. Как решить эту проблему без преобразования выражения linq в цепочки методов?

Ответы [ 2 ]

1 голос
/ 28 апреля 2011

Вы не можете сделать where condition просто так. Либо вы включаете условие в предложение where (где purchase.Price> 100), либо используете вызов метода Where (условие) внутри выражения запроса, например

from purchase in dc.GetTable<Purchase>().Where(condition)
select ...

Так вы можете их комбинировать.

0 голосов
/ 28 апреля 2011

Попробуйте:

where condition.Compile()(purchase);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...