Entity framework 到 LINQ 日期搜索

Entity framework to LINQ date search

我正在尝试构建一个 EF to LINQ 查询,我需要在一周中的每一天对 属性 求和 - 周一所有记录的总和,然后是周二等

由于 EF to LINQ 无法调用 C# 方法,我无法访问 DateTime 属性 的日期组件 (DateTime.Date) 我正在尝试过滤,所以我的当前的实现如下所示:

 _monday = startDate.Date; //I know this is monday due to grid filters
 _tuesday = startDate.AddDays(1).Date;
 _wednesday = startDate.AddDays(2).Date;
...
 monday = context.Entites.Where(x=>x.Date == _monday).Sum(s => s...);
 tuesday = context.Entities.Where(x=>x.Date == _tuesday).Sum(s => s...);

然而,我收到的数据并不完全正确,有些值分配给了错误的日期。

有没有办法让这个查询与我当前的方法一起工作?查询很大并且充满了其他过滤器(我知道这些过滤器不会干扰日期匹配)就像我正在处理的数据集一样,所以在这里使用 DbFunctions 不是一个选项(除非它根本不影响性能)。

您可以按如下方式进行

_mondayStartTime = startDate.Date; //I know this is monday due to grid filters
_mondayEndTime = _mondayStartTime.AddDays(1).AddMilliseconds(-1);
 _tuesdayStartTime = startDate.AddDays(1).Date;
 _tuesdayEndTime = _tuesdayStartTime.AddDays(1).AddMilliseconds(-1);
...
 monday = context.Entites.Where(x=> _mondayStartTime <= x.Date && x.Date <= _mondayEndTime ).Sum(s => s...);