C# 将datetime.add(timespan)与linq一起使用,但不起作用 var newStatusSummary=await(从db.QrCode中的q开始,其中q.Status==0&&&**q.CreatedDate.Add(offset)**>=start&&**q.CreatedDate.Add(offset)**
如果这是linq to entity框架,则将C# 将datetime.add(timespan)与linq一起使用,但不起作用 var newStatusSummary=await(从db.QrCode中的q开始,其中q.Status==0&&&**q.CreatedDate.Add(offset)**>=start&&**q.CreatedDate.Add(offset)**,c#,linq,.net-core,C#,Linq,.net Core,如果这是linq to entity框架,则将DateTime.Add()替换为DateTime.DateAdd(): var newStatusSummary=await(来自db.QrCode中的q,其中q.Status==0 &&**q.CreatedDate.DateAdd(偏移量)**>=开始 &&**q.CreatedDate.DateAdd(偏移量)**请使用而不是Add。区别在于Add-runtime函数可用于.Net中的运行时对象 DateAdd是映射到数据库函数的特殊函数。通
DateTime.Add()
替换为DateTime.DateAdd()
:
var newStatusSummary=await(来自db.QrCode中的q,其中q.Status==0
&&**q.CreatedDate.DateAdd(偏移量)**>=开始
&&**q.CreatedDate.DateAdd(偏移量)**请使用而不是Add。区别在于Add-runtime函数可用于.Net中的运行时对象
DateAdd是映射到数据库函数的特殊函数。通过调用方法,您的请求将映射到SQL请求
如果您使用Add方法,您应该在调用Add方法之前获取数据并将其转换为对象。(但这不是一个好主意。如果数据库中有很多行,则会失败)这是否类似于实体框架?这部分中是否必须使用async/await?@Arphile这似乎没有什么区别。您需要使用SqlFunctions
类来实现此SqlFunctions。DateAdd
不是一种扩展方法。但是,问题可能是关于EF core的。谢谢您的回答。但是问题是:这可能是关于EF core的。我曾尝试使用SqlFunctions.DateAdd,但它不起作用。很抱歉,请参阅我的编辑-我认为EntityFrameworkCore.DbFunctions.DateDiffDay可能会有所帮助
var newStatusSummary = await (from q in db.QrCode where q.Status == 0
&& **q.CreatedDate.DateAdd(offset)** >= start
&& **q.CreatedDate.DateAdd(offset)** <= end
group q by q.CreatedDate.Date into summary
select new
{
Date = summary.Key,
Total = summary.Count()
}).ToListAsync();