[方法“Boolean Contains(System.Guid)”不支持转换为 SQL]的解决办法
2008-06-27 12:50
274 查看
GuidClsID=newGuid("d4ee9c52-8d68-4f33-9485-0926281c78ac"); IList<Guid>Ids=WebProduct.GetAllChildByID(ClsID); varquery=db.T_Products.Where(p=>Ids.Contains((Guid)p.F_ClsID));//这一句编译时无错,但是一执行,就报错
出错信息如下:
方法“BooleanContains(System.Guid)”不支持转换为SQL。
估计是.net现有的linqtosql还无法直接将IList某些类型(比如Guid类型)的Contains方法正确翻译为SQL语句
研究了好久,无意间发现linq的100个官方例子中,有一个用数组实现in语句的例子,也是用Contains做的,于是把IList<Guid>转到Guid[]数组试了下,居然成功了,分享一下
varquery=db.T_Products.Where(p=>Ids.Contains((Guid)p.F_ClsID));
改为:
varquery=db.T_Products.Where(p=>Ids.ToArray<Guid>().Contains((Guid)p.F_ClsID));
这样运行时,就能正常得到结果了
相关文章推荐
- [方法“Boolean Contains(System.Guid)”不支持转换为 SQL]的解决办法
- LINQ to Entities 不识别方法“System.Guid Parse(System.String)”,因此该方法无法转换为存储表达式。
- 一些SQLite不支持的SQL语法,解决办法
- 【System】关掉\禁用win7自动配置ipv4地址的方法 默认网关自动消失的解决办法
- Microsoft Dynamics CRM 2013 安装 报表服务出现“ SQL Server Reporting Services 帐户是本地用户且不受支持 ”错误的解决方法
- 调试MVC源代码时"[A]System.Web.WebPages.Razor.Configuration.HostSection 无法强制转换为 ..."解决办法 分类: ASP.NET MVC 2012-12-09 10:49 6506人阅读 评论(3) 收藏
- Linq中int转String(解决LINQ to Entities 不识别方法"System.String ToString()",因此该方法无法转换为存储表达式.)
- 早期的Sevlet不支持 respose.setCharacterEncoding("...")方法的解决办法
- “对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成”解决方法
- SQL SERVER 导入.sql文件 出现SYSTEM.OUTOFMEMORY EXCEPTION 异常解决办法
- sqlserver decimal转换成int类型的转换出错的另一种解决办法
- 让IIS支持ASPX,添加Web服务扩展的方法,没法调试的解决办法
- 异常详细信息: System.Data.SqlClient.SqlException:用户 'IIS APPPOOL\DefaultAppPool' 登录失败解决办法
- 关于使用jquery时,ie8下提示对象不支持的属性或方法的解决办法
- JQuery-AJAX 不支持对象此方法或属性解决办法
- 越狱iOS代码不再支持system()函数的解决方法
- 让IIS支持ASPX,添加Web服务扩展的方法,没法调试的解决办法
- System.Data.SqlClient.SqlException: 用户'opper\ASPNET' 登录失败的解决办法!
- sqoop导数类型不支持解决方法:Hive does not support the SQL type for column
- 调试MVC源代码时"[A]System.Web.WebPages.Razor.Configuration.HostSection 无法强制转换为 ..."解决办法 分类: ASP.NET MVC 2012-12-09 10:49 6506人阅读 评论(3) 收藏