在我的表中有一个varchar字段,其中包含日期。 (这就是SAP存储日期的方式) 无论如何要对这个字段运行一个类似于:
的查询from c in db.Set<MyTable>()
where c.Date >= "20120921" && c.Date <= "20121021"
select c
我尝试做一个String.Compare,但EF无法将其转换为sql。
where Stirng.Compare(c.Date, "20120921") >= 0
我还尝试将两个字符串转换为int并进行比较,并且EF不再支持它。
答案 0 :(得分:2)
您可以尝试使用SqlFunctions.DateDiff
方法重载,这需要三个string
s,如下所示:
var res = from c in db.Set<MyTable>()
where SqlFunctions.DateDiff("dd", c.Date, "20120921") >= 0
&& SqlFunctions.DateDiff("dd", c.Date, "20121021") < 0
select c