Выполнить метод в linq - PullRequest
       2

Выполнить метод в linq

0 голосов
/ 14 декабря 2010

Возможно ли выполнить метод в Linq, т. Е.

var lst = (from ls in testEntity.Month where ls .Month1.ToString()  == hello() select ls).ToList();

     private string  hello()

        {
            return "8";
        }

Я знаю, что Linq не выполнится сам, при выполнении этого я получаю следующую ошибку

LINQ to Entitiesне распознает метод System.String ToString (), и этот метод не может быть преобразован в выражение хранилища.

1 Ответ

3 голосов
/ 14 декабря 2010

Как правило, вы можете вызывать методы в LINQ без проблем. Проблема, с которой вы здесь сталкиваетесь, специфична для LINQ to Entities. L2E должен перевести все ваши вызовы методов в соответствующие операторы базы данных, а для вызванного вами метода он не знает, как его перевести.

Вы можете переписать функцию hello (), чтобы получить выражение:

public Expression<Func<string>> hello() {
    return () => "8";
}

таким образом L2E может переводить утверждения. Если это работает, конечно, зависит от вашего реального кода.

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