Мне трудно сгруппировать dbset (EntityFramework) по двум полям и отправить этот вывод в строго типизированное представление.
Когда я использую анонимный тип для составного ключа, я получаю правильный вывод.Список, содержащий один элемент, и этот элемент, в свою очередь, содержит два или более элементов группировки.
Теперь, если вместо этого я использую класс, я получу список из двух элементов, и в свою очередь каждый элемент имеет один элемент группировки.
var output = context.Transfers.GroupBy(t=> new { t.TNumber, t.Type}).ToList();
var output2 = context.Transfers.AsEnumerable()
.GroupBy(t => new OTSpecs(t.TNumber, t.Type)).ToList();
OTSpecs
- это простой класс с этими открытыми полями и конструктором параметров.
Мне нужно добавить AsEnumerable()
, в противном случае я получу System.NotSupportedException
Только конструкторы и инициализаторы без параметровподдерживаются в LINQ to Entities
Также потому, что мне нужно определить модель в представлении следующим образом
@model IEnumerable<IGrouping<OTSpecs, Transfer>>
, если, конечно, нет возможности заменить OTSpec в этой строке анонимным типом,Но я не знаю, как.
Мой вопрос: почему эти строки кода выдают другой результат?Можно ли определить модель в представлении, заменяющем спецификации OTS для анонимного типа?