[方法“Boolean Contains(System.Guid)”不支持转换为 SQL]的解决办法
生活随笔
收集整理的這篇文章主要介紹了
[方法“Boolean Contains(System.Guid)”不支持转换为 SQL]的解决办法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Guid?ClsID?=?new?Guid("d4ee9c52-8d68-4f33-9485-0926281c78ac");
IList<Guid>?Ids?=?WebProduct.GetAllChildByID(ClsID);
var?query?=?db.T_Products.Where(p?=>?Ids.Contains((Guid)p.F_ClsID));//這一句編譯時無錯,但是一執(zhí)行,就報錯 出錯信息如下:
方法“Boolean Contains(System.Guid)”不支持轉(zhuǎn)換為 SQL。
轉(zhuǎn)帖請注明出處(網(wǎng)名:菩提樹下的楊過/真名:楊俊明 msn:yjmyzy@hotmail.com)
IList<Guid>?Ids?=?WebProduct.GetAllChildByID(ClsID);
var?query?=?db.T_Products.Where(p?=>?Ids.Contains((Guid)p.F_ClsID));//這一句編譯時無錯,但是一執(zhí)行,就報錯 出錯信息如下:
方法“Boolean Contains(System.Guid)”不支持轉(zhuǎn)換為 SQL。
估計是.net現(xiàn)有的linq to sql還無法直接將IList某些類型(比如Guid類型)的Contains方法正確翻譯為SQL語句
研究了好久,無意間發(fā)現(xiàn)linq的100個官方例子中,有一個用數(shù)組實現(xiàn)in語句的例子,也是用Contains做的,于是把IList<Guid>轉(zhuǎn)到Guid[]數(shù)組試了下,居然成功了,分享一下
var query = db.T_Products.Where(p => Ids.Contains((Guid)p.F_ClsID));
改為:
var query = db.T_Products.Where(p => Ids.ToArray<Guid>().Contains((Guid)p.F_ClsID));
這樣運行時,就能正常得到結(jié)果了
轉(zhuǎn)帖請注明出處(網(wǎng)名:菩提樹下的楊過/真名:楊俊明 msn:yjmyzy@hotmail.com)
轉(zhuǎn)載于:https://www.cnblogs.com/yjmyzz/archive/2008/06/27/1231063.html
總結(jié)
以上是生活随笔為你收集整理的[方法“Boolean Contains(System.Guid)”不支持转换为 SQL]的解决办法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《软件质量保证与测试》读书笔记(一)
- 下一篇: 命令行下的mysql的基本操作