Получение LINQ to Entities не распознает метод Double GetProximityInMiles (double, double) ... - PullRequest
0 голосов
/ 13 августа 2011

Вот полное сообщение: Получение LINQ to Entities не распознает метод метода Double GetProximityInMiles (double, double), и этот метод не может быть преобразован в выражение хранилища.

Вот код:

    public Maid[] GetMaidsByZipCode(string Zip, int Distance)
    {
        MaidsListEntities Context = new MaidsListEntities();

        return Context.Maids.Where(m => m.Zip == Zip && Distance <= GeoLocationProvider.Instance.GetProximityInMiles(Zip, m.Zip)).ToArray();
    }

1 Ответ

1 голос
/ 14 августа 2011

Вы видите эту ошибку, потому что ваш метод (GetProximityInMiles) не может быть преобразован в запрос SQL. Вы можете попробовать выполнить эту часть запроса в памяти:

return Context.Maids.ToArray().Where(m => m.Zip == Zip && Distance <= GeoLocationProvider.Instance.GetProximityInMiles(Zip, m.Zip)).ToArray();

Первый вызов ToArray материализует всех горничных. Затем остальная часть запроса выполняется в памяти. Обратите внимание, что этот подход может вызвать проблемы с производительностью, если количество записей в вашей таблице слишком велико.

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