确实坚持使用 Linq to SQL 分组和求和,到处搜索,但我还不够了解,无法将其他解决方案应用到我自己的解决方案中。
我的数据库中有一个名为 view_ProjectTimeSummary 的视图,它具有以下字段:
string_UserDescription
string_ProjectDescription
datetime_Date
double_Hours
我有一个方法,它接受起始日期和起始日期参数,并首先创建此 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 字段在“开始”和“结束”日期参数之间的值(而不是每个日期的单独条目)?
例如具有以下字段的 List:
string_UserDescription
string_ProjectDescription
double_SumOfHoursBetweenToAndFromDate
我是否正确,这意味着我必须返回不同类型的 List (因为它的字段比 view_UserTimeSummary 少)?
我已经读过,为了得到总和,它类似于“group / by / into b”,但通过查看其他解决方案不明白这种语法是如何工作的......有人可以帮助我吗?
谢谢
史蒂夫