码字,杂谈

LINQ 语句中格式化日期

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,再查找,就可以简单有效的解决问题。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注