[英]Entity framework to LINQ date search
我正在嘗試構建一個 EF 到 LINQ 查詢,我需要按一周中的每一天對屬性求和 - 周一、周二等所有記錄的總和。
由於 EF 到 LINQ 無法調用 C# 方法,我無法訪問我試圖過濾的 DateTime 屬性的 Date 組件 (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...);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.