首页 > 其他 > 详细

LINQ to Entities 不识别方法“System.String ToString() 的解决方法

时间:2017-05-03 21:49:10      阅读:328      评论:0      收藏:0      [点我收藏+]

今天在做一个页面的时候出现了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() 的解决方法

原文:http://www.cnblogs.com/syl2006/p/6803913.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!