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