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...);
我正在尝试构建一个 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...);