在使用EF时,之前有个条件,比如查询日期大于2019-10-11号的所有记录。
如下:Expression<Func<MyNd, bool>> condition = a => a.Date >= "2019-10-11";
最后发现有问题。因此找半天后了解到。正确写法如下:
SQL语句:
1 2 3 4 | 1) select * from TableName where StartTime > '2019-04-08' 2) select * from TableName where StartTime >= '2019-04-08' 3) select * from TableName where StartTime < '2019-04-08' 4) select * from TableName where StartTime <= '2019-04-08' |
对应的lambda表达式写法:
1 2 3 4 | 1).Where(a => a.StartTime.CompareTo( '2019-04-08' ) > 0) 2).Where(a => a.StartTime.CompareTo( '2019-04-08' ) >= 0) 3).Where(a => a.StartTime.CompareTo( '2019-04-08' ) < 0) 4).Where(a => a.StartTime.CompareTo( '2019-04-08' ) <= 0) |
更规范的写法:
1 2 3 4 | 1).Where(a => String.Compare(a.StartTime, '2019-04-08' , StringComparison.Ordinal) > 0) 2).Where(a => String.Compare(a.StartTime, '2019-04-08' , StringComparison.Ordinal) >= 0) 3).Where(a => String.Compare(a.StartTime, '2019-04-08' , StringComparison.Ordinal) < 0) 4).Where(a => String.Compare(a.StartTime, '2019-04-08' , StringComparison.Ordinal) <= 0) |