LINQ to Entities 不识别方法“System.String ToString() 的解决方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LINQ to Entities 不识别方法“System.String ToString() 的解决方法相关的知识,希望对你有一定的参考价值。
今天在做一个页面的时候出现了LINQ to Entities 不识别方法“System.String ToString()”的错误,对于源码IQueryable<SelectListItem> items = roleInfoServer.Get(r => true).Select(r => new SelectListItem() { Value = r.Id.ToString(), Text = r.RoleName });找了好长的时间没有找到原因。无奈之下只好求助度娘了,找了半天别人遇到的时候是在linq的where语句中出现的。解决的办法是采用变量的方法。如http://blog.csdn.net/qqxyy99/article/details/52144902中写的方法,但是这些不适合我。
看了几个博客,但遇到这个问题的基本上是和Iqueryable这个接口有关。于是想起了MSDN上说的
IQueryable 接口由查询提供程序实现。该接口只能由同时实现 IQueryable<T> 的提供程序实现。如果该提供程序不实现 IQueryable<T>,则无法对提供程序数据源使用标准查询运算符。
而我所有的关于查询的全部使用IQueryable,数据都保存在数据库,没有实现。
于是,我把IQueryable换成了IEnumerable,代码变成了这样: IEnumerable<SelectListItem> items = roleInfoServer.Get(r => true).AsEnumerable().Select(r => new SelectListItem() { Value = r.Id.ToString(), Text = r.RoleName });
问题解决
以上是关于LINQ to Entities 不识别方法“System.String ToString() 的解决方法的主要内容,如果未能解决你的问题,请参考以下文章
LINQ to Entities 无法识别方法“布尔包含 [Int32]
linQ to entities不识别方法Models.Repository.Student get_Item(Int32)'方法
LINQ to Entities 无法识别方法 IsNullOrWhiteSpace
C#学习教程:LINQ to Entities无法识别方法’System.String Split(Char )’方法