ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2019-02-27 15:52:27  阅读:289  来源: 互联网

标签:String 识别方法 EF System Linq EntityFramework 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


 

标签:String,识别方法,EF,System,Linq,EntityFramework,ToString,引用,报错
来源: https://www.cnblogs.com/sharing1986687846/p/10444147.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有