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 });
?
問題解決
?
轉載于:https://www.cnblogs.com/syl2006/p/6803913.html
總結
以上是生活随笔為你收集整理的LINQ to Entities 不识别方法“System.String ToString() 的解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 铁路12306APP怎么退票
- 下一篇: 简单回顾在杭州7年