Вызов функции в запросе в Entity Framework 3.5 - PullRequest
0 голосов
/ 12 мая 2010

Я пытаюсь выполнить следующий запрос в рамках структуры 3.5

var test = from e in customers where IsValid(e) select e;

Здесь функция IsValid принимает текущего клиента и проверяет его на соответствие некоторым условиям и возвращает false или true. Но когда я пытаюсь выполнить запрос, он выдает ошибку «Метод LINQ не может быть преобразован в выражение хранилища». Может ли какой-нибудь орган сказать мне какой-либо другой подход?

Один из подходов, который я могу придумать, - написать здесь все условия проверки, но это затруднит чтение кода.

Спасибо Ashwani

1 Ответ

1 голос
/ 12 мая 2010

Как следует из текста ошибки, поставщик EF Linq не может преобразовать метод IsValid в SQL.

Если вы хотите, чтобы запрос выполнялся в БД, вам нужно будет написать свои условия проверки воператор linq.

Или, если вы просто хотите получить всех клиентов и , тогда проверьте, действительны ли они, вы можете сделать:

var test = from e in customers.ToList() //execute the query directly w/o conditions
           where IsValid(e)
           select(e);
...