LINQ Содержит условие на основе нескольких критериев поиска в Entity Framework Core 3.1 - PullRequest
0 голосов
/ 02 мая 2020

У меня есть строковый параметр, который разбивается на несколько поисковых фильтров в зависимости от результата операции Split(','). Я хочу выбрать все объекты, в которых поле заголовка содержит любой из поисковых фильтров

Я бы ожидал, что следующий LINQ будет работать

    string[] filters = param.Split(',');

    var query = await
        (from t in this.Context.Persons
         from f in filters.Where(f => t.Title.Contains(f))
         select t).ToListAsync();

Однако при выполнении запроса Я получаю следующую ошибку:

Processing of the LINQ expression 't => __filters_0
    .Where(f => t.Title.Contains(f))' by 'NavigationExpandingExpressionVisitor' failed. This may indicate either a bug or a limitation in EF Core. 

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 03 мая 2020

В итоге я реализовал обобщенный c метод расширения LikeAny в IQueryable, как описано здесь: https://github.com/dotnet/efcore/issues/10834

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