您的位置:首页 > 其它

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

2016-08-07 22:05 405 查看
最近在项目中一直遇到问题,其中最让人头疼的就是:

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

错误出处为:

List<ta_resource> enResource = this.CurrentDal.LoadItems(r => r.ResourcePId ==resourceId.ToString()).ToList();

遇到问题需要自己解决,于是,开始了漫长的解决之路。。。

于是,就出现了很多像下述这样的博客

http://blog.csdn.net/guokeeryi_/article/details/44758911

没有什么总结性的语言,只有代码上的不同。之后在学习MVC视频时看到了同样的错误,



老师却并没有讲理由,这是很让我伤心的一件事情。知道成功的代码如下:




然并卵。三四天的时间全都是这个问题,太难受了,当遇到问题半天解决不了的 就应该寻求别的帮助了。我这都多少个半天了,,

无奈自己解决不了叫来了师父20min左右的时间,没有找到原因,请教了另一个师哥,一点就通,两分钟完美解决。

修改后的代码为:

String temp = resourceId.ToString();

List<ta_resource> enResource = this.CurrentDal.LoadItems(r => r.ResourcePId ==temp).ToList();

之前查过资料里遇到一句话,Linq语句中不能调用其他方法如Tostring。之前不懂,但是自从师哥的一句话点通,才知道这句话的精妙。由于只能调用到属性,所以将Tostring摘出来当做一种临时变量。问题完美解决。

然后,今天写博客有些仓促,不知道该怎么完整的描述这个问题的解决,于是又在网上查到部分信息。竟然找到了跟师哥思想碰撞的解释。很开心,能更明白一点了。链接如下:


http://www.3fwork.com/b112/000035MYM004294/

这个多了解释性的话语,更明白一点了,看来问题需要常常回顾,印象才能更深刻。

通过这个问题的解决,发现解决问题的思路确实太重要了,然而思路的来源又是什么呢?是多年或者以前的各种错误,丰富了经验。所以以后多多敲代码多多调错,才能尽可能少的浪费时间,尽可能多的完美解决问题!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐