使用Entity Framework 4和Linq查询比较DateTime属性中的日期的简单方法
我正在尝试运行以下一些代码,但是通过不将我期望的实体交给我来进行比较失败。
它比较06/09/2011 12:25:00
06/09/2011 0:00:00
到06/09/2011 12:25:00
,后者是我的数据库记录值。 这就是比较失败的原因,我没有得到我需要的记录。
我只是想比较日期是否匹配,我不关心时间。
DateTime today = DateTime.Now.Date; var newAuctionsResults = repo.FindAllAuctions() .Where(a => a.IsActive == true || a.StartTime.Value == today) .ToList();
我怎样才能比较日期?
如果在.StartTime.Value部分使用.Date属性,我会得到一个exception:
LINQ to Entities不支持指定的类型成员“Date”。 仅支持初始化程序,实体成员和实体导航属性。
您可以使用个人成员:
var newAuctionsResults = repo.FindAllAuctions() .Where(a => a.IsActive == true || (a.StartTime.Value.Year == todayYear && a.StartTime.Value.Month == todayMonth && a.StartTime.Value.Day == todayDay)) .ToList();
…或使用L2E中支持的任何其他方法/属性 。
您还可以在命名空间System.Data.Objects
下使用EntityFunctions.TruncateTime()
防爆。
db.Orders.Where(i => EntityFunctions.TruncateTime(i.OrderFinishDate) == EntityFunctions.TruncateTime(dtBillDate) && i.Status == "B")
像魅力一样工作。
尝试
DateTime todayStart = DateTime.Now.Date; DateTime todayEnd = DateTime.Now; var newAuctionsResults = repo.FindAllAuctions() .Where(a => a.IsActive == true || (a.StartTime.Value >= todayStart && a.StartTime.Value <= todayEnd)) .ToList();
你可以转换使用
DateTime.ToShortDateString()
https://msdn.microsoft.com/en-us/library/system.datetime.toshortdatestring.aspx
这会忽略时间。
然后比较两个字符串。
上述就是C#学习教程:使用Entity Framework 4和Linq查询比较DateTime属性中的日期的简单方法分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!
if(string1 == string2) { //Do Something }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1015003.html