У меня есть запрос Linq следующим образом,Linq преобразование типа возвращаемого значения
var result =
from Record in DBContext.GetAll().
group new { Record.Filed1, Record.Field2} by Record.Field3
into newGroup
select new
{
BodyRegion = newGroup.Key,
ByScanner =
from exam in newGroup
group exam.MaxValue by exam.Model
into myGroup
select myGroup,
ByExam =
from exam in newGroup
group exam.MaxValue by exam.Protocol
into myGroup2
select myGroup2
};
Тогда я итерацию Повсеместно них
foreach (var rec in result)
{
foreach (var byScanner in rec.ByScanner)
{
ProcessResult(byScanner.Key, byScanner.ToList());
}
foreach (var byExam in rec.ByExam)
{
ProcessResult(byExam.Key, byExam.ToList());
}
}
Все работает отлично. Но мне нужно переместить запрос Linq (первый фрагмент кода) функции, каков должен быть тип возвращаемого значения? Тип возврата функции не может быть var. Если я дам IEnumerable < Object> то при переборе я не могу получить доступ к rec.ByScanner, rec.ByExam потому Объект не содержит их. Как решить эту проблему?
EDIT: Я пробовал создавать новый класс и заполнять его. Но группировка атрибутов byScanner. Ключ, byScanner. ToList() недоступны. Как это можно решить?
Создайте класс и заполните его вместо того, чтобы получать «анонимный тип». –
Пожалуйста, см. Часть EDIT, я попытался сделать ваше решение. Тогда я в конечном итоге с выше проблемы. –