我试图将一个应用程序转换为EntityFrameWork codefirst.我现在的代码是
string sFrom ="26/12/2013"; select * FROM Trans where CONVERT(datetime, Date, 105) >= CONVERT(datetime,'" + sFrom + "',105)
我试过了
DateTime dtFrom = Convert.ToDateTime(sFrom ); TransRepository.Entities.Where(x =>Convert.ToDateTime(x.Date) >= dtFrom)
但是我得到了这样的错误
LINQ to Entities无法识别方法'System.DateTime ToDateTime(System.String)'方法
请提前帮助,谢谢
当你这样做:
TransRepository.Entities.Where(x =>Convert.ToDateTime(x.Date) >= dtFrom)
LINQ to Entities无法将大多数.NET Date方法(包括您使用的转换)转换为SQL,因为没有等效的SQL.你需要做的是在下面做:
DateTime dtFrom = Convert.ToDateTime(sFrom ); TransRepository .Entities.ToList()//forces execution .Where(x =>Convert.ToDateTime(x.Date) >= dtFrom)
但等待上面的查询将获取整个数据,并执行.Where
它,绝对你不希望这样,
简单的灵魂就是这个,就个人而言,我会将我的实体字段DateTime
和db列作为DateTime
但是,因为你的db/Entity Date
字段是字符串,除了将实体和db中的字段更改为DateTime
然后进行比较之外,你没有任何其他选项