Linq Contains() 不支持
Posted
技术标签:
【中文标题】Linq Contains() 不支持【英文标题】:Linq Contains() Not supported 【发布时间】:2013-03-15 15:54:20 【问题描述】:(from a in GetCtx().Application
where identifiers.Contains(a.os + ":" + a.osIdentifier)
select a.id).ToList();
它给了我 NotSupportedException:
LINQ to Entities 无法识别方法 'System.String Format(System.String, System.Object, System.Object)' 方法和这个 方法不能翻译成商店表达式。
谁能告诉我如何解决这个问题?
【问题讨论】:
什么是identifiers
?
它是一个字符串。我将其格式化为具有这两个参数,例如“3:com.app.android”
您使用的是 EF4 还是更新版本?
您确定这是正确的代码/错误消息吗?错误是抱怨 String.Format,而不是 Contains。
【参考方案1】:
如果您针对 SQL Server 使用 LINQ to Entities,您可以使用 SqlFunctions:
(from a in GetCtx().Application
where identifiers.Contains(SqlFunctions.StringConvert((double)a.os) + ":" + a.osIdentifier)
select a.id).ToList();
【讨论】:
以上是关于Linq Contains() 不支持的主要内容,如果未能解决你的问题,请参考以下文章
引起:java.lang.IllegalArgumentException: CONTAINING (1): [IsContaining, Containing, Contains]不支持redis查
LINQ to Entities 不支持 LINQ 表达式节点类型“Invoke”
“LINQ to Entities 不支持 LINQ 表达式节点类型 'Invoke'” - 难倒!
不支持 Linq-to-EF DateTime.ToLocalTime
JsonResult(object) 导致“不支持集合类型'Newtonsoft.Json.Linq.JToken'。”