【发布时间】:2013-05-16 09:00:31
【问题描述】:
真的坚持使用 Linq to SQL 分组和求和,到处搜索,但我不了解将其他解决方案应用于我自己的解决方案。
我的数据库中有一个名为 view_ProjectTimeSummary 的视图,它包含以下字段:
string_UserDescription
string_ProjectDescription
datetime_Date
double_Hours
我有一个方法,它接受一个往返日期参数并首先创建这个列表:
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;
我如何操作生成的列表 以显示该用户和项目在结束日期和结束日期参数之间的字段 double_Hours 的 sum(而不是每个日期的单独条目)?
例如具有以下字段的 List:
string_UserDescription
string_ProjectDescription
double_SumOfHoursBetweenToAndFromDate
这是否意味着我必须返回不同类型的 List(因为它的字段少于 view_UserTimeSummary)?
我已经读过它以获得类似于“group / by / into b”之类的总和,但通过查看其他解决方案不明白这种语法是如何工作的......有人可以帮助我吗?
谢谢 史蒂夫
【问题讨论】: