原文地址: https://www.jeremyjone.com/656/,转载请注明。
LINQ中经常需要进行数据判断进行筛选,如果遇到需要对日期进行格式化,需要注意不能在实体Entity中直接格式化日期,这样会报错,而是需要先将实体转换,再筛选。
例如:
var day = "2020-04-20";
var r = _db.PlanDay.FirstOrDefault(x=>x.Validity && string.Equals(x.CreateTime.ToString("yyyy-MM-dd"), day));
上面这样写,直接崩掉,因为直接对CreateTime实体字段使用ToString()方法。
应该修改为如下,即可解决问题:
var day = "2020-04-20";
var r = _db.PlanDay.ToList().FirstOrDefault(x=>x.Validity && string.Equals(x.CreateTime.ToString("yyyy-MM-dd"), day));
先将数据库所有数据转为List,再查找,就可以简单有效的解决问题。

在使用LINQ进行数据筛选时,如果涉及到日期格式化,不能直接在实体Entity上使用ToString()方法,这会导致错误。正确的做法是先将数据库数据转化为List,然后在List中进行日期格式化操作,从而避免错误。示例代码演示了如何正确地在LINQ查询中处理日期格式化问题。
3976

被折叠的 条评论
为什么被折叠?



