LINQKit + EF Code Где предложение как ошибка метода - PullRequest
0 голосов
/ 10 апреля 2020

Я использую LINQKit.Core 1.1.17, и я хотел бы использовать мой метод в Expression Fun c. Моя проблема в том, что я получаю ошибку:

The LINQ expression 'DbSet<Test>
.Where(v => TestService.Distance(
    x1: __current_X_0, 
    y1: __current_Y_1, 
    x2: v.X, 
    y2: v.Y) < __8__locals1_maxDistance_2)' could not be translated. Either rewrite the query in a form that can be translated, or switch to client evaluation explicitly by inserting a call to either AsEnumerable(), AsAsyncEnumerable(), ToList(), or ToListAsync(). See https://go.microsoft.com/fwlink/?linkid=2101038 for more information.

Вот мой код.

Выражение:

Expression<Func<Test, bool>> exp = v => Distance(current.X, current.Y, v.X, v.Y) < maxDistance;

Метод расстояния:

    private double Distance(int x1, int y1, int x2, int y2)
    {
        var x = Math.Abs(x1 - x2);
        var y = Math.Abs(y1 - y2);

        return Math.Sqrt(x ^ 2 + y ^ 2);
    }

Возможно ли выполнить sh, используя LINQKit? Есть ли лучшие способы для запроса базы данных таким образом?

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