Entity Framework Core Фильтрация дочерней коллекции - PullRequest
0 голосов
/ 15 апреля 2020

Я использую библиотеку EF Core Plus для фильтрации дочерней коллекции моей сущности:

            var result = await _context.Parents
            .IncludeFilter(p => p.Children
                .Where(c => c.Region.SomeProperty == name)
                .OrderByDescending(c => c.OtherProperty)
                .Take(6))
            .ToListAsync();

Хотя Документы EF Core Plus утверждают, что это правильный способ фильтрации дочерней коллекции, это не работает должным образом:

warn: Microsoft.EntityFrameworkCore.Query[20500]
      The LINQ expression 'join Region p.Children_groupItem.Region in value(Microsoft.EntityFramework
Core.Query.Internal.EntityQueryable`1[Whoonid.Domain.WhoonidContext.Cities.Region]) on Property([p.Children_groupItem], "RegionId") equals Property([p.Children_groupItem.Region], "Id")' could not be tra
nslated and will be evaluated locally.
warn: Microsoft.EntityFrameworkCore.Query[20500]
      The LINQ expression 'where ([p.Children_groupItem.Region].SomeProperty == __query_SomeProperty_0)'
could not be translated and will be evaluated locally.
warn: Microsoft.EntityFrameworkCore.Query[20500]
      The LINQ expression 'orderby [p.Children_groupItem].JobOffersCount desc' could not be translate
d and will be evaluated locally.
warn: Microsoft.EntityFrameworkCore.Query[20500]
      The LINQ expression 'Take(6)' could not be translated and will be evaluated locally.
warn: Microsoft.EntityFrameworkCore.Query[20500]

, что в основном означает, что оценка переносится в память.

Кто-то исправил подобную проблему и сумел ее решить?

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