LINQ to Entities无法识别方法'System.DateTime ToDateTime(System.String)'方法

 艺卓显示、巴可投影 发布于 2023-02-07 20:50

我试图将一个应用程序转换为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)'方法

请提前帮助,谢谢

1 个回答
  • 当你这样做:

    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然后进行比较之外,你没有任何其他选项

    2023-02-07 20:53 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有