用EF,整个团队都是摸石头过河,写法上面开始千奇百怪,慢慢走向统一,但是对于有些难题,大家都知道写的不好,却一直找不到好的办法,比如日期/时间比较。
碰过几次错误之后,个人的总结就是,如果写esql,就写年份*10000+月份*100+日期比较;不是esql,就采用空间换时间的方式,先用其他条件过滤.ToList(),再内存数据日期函数比较,一直也就这么用成习惯了,谁知竟然离真相只差一步。
今天同事说他的方法里面,不用日期比较过滤数据的话,数据量很大,空间换时间的路不能走,查到一个 DateDiffMinute函数很符合要求,运行却报linq to entities不支持错误。无奈之下google一手DateDiffDay linq to Entities,在一堆英文答案中找到一个csdn的链接,打开一看就恍然大悟,原来还有linq to Entities版本。由于一直只引用System.Linq命名空间,根本没意识到要区分linq to sql和linq to entities,看到这个System.Data.Objects.EntityFunctions下面的方法时,恍若发现一个宝库。
其实只要再坚持一下,多msdn一次,多google一次,答案就在眼前,做为一个老猴子,不能太容易满足解决当下的问题。
浙公网安备 33010602011771号