zoukankan      html  css  js  c++  java
  • LINQ to Entities 不识别方法“System.String ToString()”,因此该方法无法转换为存储表达式。

           基于EF的项目开发中,遇到报错提示:

    LINQ to Entities 不识别方法“System.String ToString()”,因此该方法无法转换为存储表达式。

           但是代码如下:

    var item = (from s in context.Portal.AsNoTracking()
                                where s.Domain.Contains(host)
                                && s.Status != PortalStatus.Delete.ToString()
                                 select s).FirstOrDefault();

           同样的一段代码,在另一个项目中可用,不会报错,但是自己搭建的项目中报错。如果把这段代码去除:

    && s.Status != PortalStatus.Delete.ToString()

    ,则不会报错了,之前自己也有遇到过,以为是Linq内本来就不支持内部ToString()这样直接转换,但是这次遇到同样的语句在另一个项目中可用,在这个项目中不可用,然后就找原因,网上说的基本都是再次引用别的,基本都是要么Linq外转换好,要么通过SQLFun来实现,但是没这个方便直观。

             后来找到原因,是因为引用的EntityFramework.SqlServer的版本较低,不支持Linq内直接ToString(),然后引用更高版本的EntityFramework及EntityFramework.SqlServer后,不会报错了。

    报错时EF引用版本:EntityFramework.6.0.0

    解决报错引用的EF版本:EntityFramework.6.1.3

    
    
    
  • 相关阅读:
    vsftpd安装问题汇总(持续更新。。)
    Office2010安装问题总结
    AM335X 开发板安装vsftpd操作流程
    Source Insight常用快捷键及注释快捷键设置
    小四轴之第二次飞行篇
    linux命令df中df -h和df -i
    Linux tail 命令
    Linux chmod命令用法
    ps -ef |grep java
    jupyter notebook安装、登录
  • 原文地址:https://www.cnblogs.com/sharing1986687846/p/10444147.html
Copyright © 2011-2022 走看看