Действительно застрял с группировкой и суммированием Linq to SQL, искал везде, но я не понимаю достаточно, чтобы применять другие решения для своих собственных.
У меня есть представление в моей базе данных с именем view_ProjectTimeSummary, это имеет следующие поля:
string_UserDescription
string_ProjectDescription
datetime_Date
double_Hours
У меня есть метод, который принимает параметр to и from date и сначала создает этот List < > :
List<view_UserTimeSummary> view_UserTimeSummaryToReturn =
(from linqtable_UserTimeSummaryView
in datacontext_UserTimeSummary.GetTable<view_UserTimeSummary>()
where linqtable_UserTimeSummaryView.datetime_Week <= datetime_To
&& linqtable_UserTimeSummaryView.datetime_Week >= datetime_From
select linqtable_UserTimeSummaryView).ToList<view_UserTimeSummary>();
Перед возвратом списка (для использования в качестве источника данных для datagridview) я фильтрую поле string_UserDescription с использованием параметра с тем же именем:
if (string_UserDescription != "")
{
view_UserTimeSummaryToReturn =
(from c in view_UserTimeSummaryToReturn
where c.string_UserDescription == string_UserDescription
select c).ToList<view_UserTimeSummary>();
}
return view_UserTimeSummaryToReturn;
Как я могу обработать полученный List < > , чтобы показать sum поля double_Hours для этого пользователя и проекта между параметрами даты и времени (а не отдельными записями для каждой даты)?
например. Список < > со следующими полями:
string_UserDescription
string_ProjectDescription
double_SumOfHoursBetweenToAndFromDate
Я прав, что это означало бы, что мне придется возвращать другой тип List < > (поскольку он имеет меньше полей, чем view_UserTimeSummary)?
Я прочитал, что, чтобы получить сумму, это что-то вроде "group/by/in b", но не понимаю, как работает этот синтаксис, глядя на другие решения... Может ли кто-нибудь помочь мне?
Спасибо Стив