真的坚持使用 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<> 以显示该用户和项目在 to 和 from 日期参数之间的字段 double_Hours 的总和(而不是每个日期的单独条目)?
例如具有以下字段的 List<>:
string_UserDescription
string_ProjectDescription
double_SumOfHoursBetweenToAndFromDate
我是否正确,这意味着我必须返回不同类型的 List<>(因为它的字段少于 view_UserTimeSummary)?
我已经读过它以获得类似于'group / by / into b'的总和,但通过查看其他解决方案不明白这种语法是如何工作的......有人可以帮助我吗?
谢谢史蒂夫