我正在使用LINQ to Entities检索项目购买日期,如下所示:
where EntityFunctions.TruncateTime(order.PurchaseDate) == myPurchaseDate.date
Run Code Online (Sandbox Code Playgroud)
这里的关键是DB列包含日期和时间,因此必须剥离比较的时间.这段代码工作正常.
现在,我想使用动态LINQ to Entities做同样的事情.我正在使用VS2010代码示例文件夹中的dynamic.cs.当我编码:
.where("EntityFunctions.TruncateTime(PurchaseDate) == @0", myPurchaseDate.date);
Run Code Online (Sandbox Code Playgroud)
或者我的任何变体都会收到错误消息.我需要编写什么作为字符串值才能使其工作?(因为我可以在字符串中使用.StartsWith或.Contains,我希望有一些日期函数动态LINQ会识别).
我知道我可以创建动态LINQ查询作为日期范围,从概念上讲:
PurchaseDate >= myPurchaseDate@midnight and PurchaseDate <= myPurchaseDate+23:59:59
Run Code Online (Sandbox Code Playgroud)
实际上,从SQL Server的角度来看,日期范围可能更有效,但我想知道在动态LINQ到实体中是否存在类似TruncateTime或ToShortDate的内容.