IQueryable в Entity Framework Core для установки свойства объекта равным количеству строк в другом объекте (таблица) - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть объект, у которого есть собственная таблица журнала (отдельный объект).Мне нужно вернуть мою сущность, у которой есть свойство для подсчета количества строк в сущности журнала, и я хотел бы сделать все это с одной поездкой в ​​базу данных.Я пытался использовать метод Select() в IQueryable для установки значения свойства, но это заставляет меня сначала вызывать AsEnumerable(), и у меня есть другой пользовательский метод расширения, отличный от IQueryable, по цепочке, которую я могу 't change.

Как мне это сделать?

Вот метод AsEnumerable(), который работает для получения коллекции, но не работает для моего случая:

_context
        .Include(x => x.IrrelevantToMyProblemEntity)
        .AsEnumerable()
        .Select( x =>
        {
            x.LogCount = _context.LogEntity.Count();
            return x;
        }
    );

1 Ответ

0 голосов
/ 28 сентября 2019

вы должны использовать группу, если вы хотите использовать коммутативные множества при использовании агрегатной функции

   group x by x.IrrelevantToMyProblemEntityinto g
   select new { Value = g.Key, Count = g.Count() };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...