C# 将datetime.add(timespan)与linq一起使用,但不起作用 var newStatusSummary=await(从db.QrCode中的q开始,其中q.Status==0&&&**q.CreatedDate.Add(offset)**>=start&&**q.CreatedDate.Add(offset)**

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是映射到数据库函数的特殊函数。通

如果这是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是映射到数据库函数的特殊函数。通过调用方法,您的请求将映射到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();