我该如何正确地做到这一点?
这是失败的,因为来自RR2的m中不存在schedule-on。
var RR = (from m in DataContext.csrcallds
where m.scheduledon >= earliestDate
&& m.scheduledon <= objdate1.DateStart
&& m.assignto == 113
&& (SqlMethods.DateDiffDay(m.scheduledon, m.completedon) > 5)
select m
);
var RR2 = RR.Select(x => (GetBusinessDays((DateTime)x.scheduledon, (DateTime)x.completedon)) > 5).ToList());
var RnR = (from m in RR2
group m by new { m.scheduledon.Value.Year, m.scheduledon.Value.Month } into p
orderby p.Key.Year ascending, p.Key.Month ascending
select new Date1()
{
theDate = DateTime.Parse($"{p.Key.Month} - {p.Key.Year}"),
theCount = p.Count(),
theString = $"{p.Key.Month} - {p.Key.Year}"
});
我正在尝试查询所有结果。 然后使用我的GetBusinessDay功能过滤掉我不需要的功能,在5个工作日内只收集记录。 然后将结果放入名为Date1的模型中。
我试图这样做是因为我不能在LINQ查询中使用GetBusinessDays。 所以我试图在SQL之外过滤它,然后再次对记录进行分组。
如何完成此任务?
答案 0 :(得分:0)
您可以将其添加到SQL查询中以过滤周末时间。
SELECT *
FROM your_table
WHERE ((DATEPART(dw, date_created) + @@DATEFIRST) % 7) NOT IN (0, 1)
或者这个
select [date_created]
from table
where DATENAME(WEEKDAY, [date_created]) <> 'Saturday'
and DATENAME(WEEKDAY, [date_created]) <> 'Sunday'
或者,如果你必须坚持LINQ,请尝试这里概述的想法: Linq query DateTime.Date.DayOfWeek
DateTime firstSunday = new DateTime(1753, 1, 7);
var bookings = from b in this.db.Bookings
where EntityFunctions.DiffDays(firstSunday, b.StartDateTime) % 7 == 1
select b;
答案 1 :(得分:0)
使用函数workdays服务器端解决: https://stackoverflow.com/a/252532/6157660
允许我进行简单的LINQ查询,并提供我需要的内容。
我编辑了函数以从DateDiff中删除+1。因为同一天应该是0而不是1。
谢谢你们的帮助!
print