Выражение Linq GroupBy вызывает исключение AnonymousType - PullRequest
0 голосов
/ 25 июня 2019

У меня есть запрос, который возвращает IEnumerable, который я использую для отображения таблицы значений.

Я хотел бы сгруппировать таблицы (используя элемент <H3/>) по полю DateTime модели (StartTime).

Я изменил модель, чтобы использовать соответствующий универсальный:

IEnumerable<IGrouping<DateTime, FooViewModel>> routes;

Я заполняю модель с помощью FromSQL запроса:

        routes = (IEnumerable<IGrouping<DateTime, FooViewModel>>)await _context.FooViewModels
            .FromSql(@"SELECT  ..."
            )
            .GroupBy(r => new { r.StartTime.Date })
            .ToListAsync();

Пока код проходит проверку во время разработки, я получаю сообщение об ошибке во время выполнения:

Unable to cast object of type 'System.Collections.Generic.List`1[System.Linq.IGrouping`2[<>f__AnonymousType5`1[System.DateTime],FooViewModel]]' to type 'System.Collections.Generic.IEnumerable`1[System.Linq.IGrouping`2[System.DateTime,FooViewModel]]'.

Что я делаю неправильно?

1 Ответ

1 голос
/ 25 июня 2019

Поскольку ошибка пытается сообщить вам, вы не можете передать анонимный тип как DateTime.

Поскольку ваше представление принимает группировку DateTime s, вам нужно передать *От 1005 * лямбда до GroupBy(), чтобы он имел тот же тип.

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