Я хочу написать запрос структуры объекта. Но моя группировка не статична, она динамически зависит от условий. Мой запрос как ниже. Но я не мог дать значение по умолчанию grouppedData
. Потому что это меняется для каждого условия. Как мне этого добиться?
var grouppedData= ??????;
if (isCountrySelected && !isStateSelected && !isYearSelected)
{
grouppedData = context.Students.GroupBy(p => new { p.country });
}
else if (!isCountrySelected && isStateSelected && !isYearSelected)
{
grouppedData = context.Students.GroupBy(p => new { p.state });
}
else if (!isCountrySelected && !isStateSelected && isYearSelected)
{
grouppedData = context.Students.GroupBy(p => new { p.year });
}
else if (isCountrySelected && isStateSelected && !isYearSelected)
{
grouppedData = context.Students.GroupBy(p => new { p.country,p.state });
}
else if (!isCountrySelected && isStateSelected && isYearSelected)
{
grouppedData = context.Students.GroupBy(p => new { p.state, p.year });
}
else if (isCountrySelected && !isStateSelected && isYearSelected)
{
grouppedData = context.Students.GroupBy(p => new { p.country, p.year });
}
else if (isCountrySelected && isStateSelected && isYearSelected)
{
grouppedData = context.Students.GroupBy(p => new { p.country, p.state, p.year });
}
var result= grouppedData.Select(p => new
{
PrimaryStudentCount = p.Sum(k => k.PrimaryStudent),
SecondaryStudentCount = p.Sum(k => k.SecondaryStudent),
UniversityStudentCount = p.Sum(k => k.UniversityStudent),
MaleStudentCount = p.Sum(k => k.MaleStudent),
FemaleStudentCount = p.Sum(k => k.FemaleStudent),
.
.
.
}).ToList();