亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Linq到實體不識別方法‘System.String ToString()’方法,而且該方法無法轉換

Linq到實體不識別方法‘System.String ToString()’方法,而且該方法無法轉換

藍山帝景 2019-07-11 10:19:23
Linq到實體不識別方法‘System.String ToString()’方法,而且該方法無法轉換為存儲表達式我正在將一些東西從一個MySQL服務器遷移到一個SQL服務器,但我不知道如何使這些代碼工作:using (var context = new Context()){     ...     foreach (var item in collection)     {         IQueryable<entity> pages = from p in context.pages                                            where  p.Serial == item.Key.ToString()                                    select p;         foreach (var page in pages)         {             DataManager.AddPageToDocument(page, item.Value);         }     }     Console.WriteLine("Done!");     Console.Read();}當它進入第二個foreach (var page in pages)它拋出了一個例外,它說:Linq to Entites不識別‘System.StringToString()’方法,而且該方法不能轉換為存儲表達式。有人知道為什么會這樣嗎?
查看完整描述

3 回答

?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

問題是,您正在LINQtoEntients查詢中調用ToString。這意味著解析器正在嘗試將ToString調用轉換為其等效的SQL(這是不可能的.因此出現了異常)。

您所要做的就是將ToString調用移動到一個單獨的行:

var keyString = item.Key.ToString();var pages = from p in context.entities            
where p.Serial == keyString            
select p;


查看完整回答
反對 回復 2019-07-11
  • 3 回答
  • 0 關注
  • 768 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號