实体框架包含/包含 SQLCE 子句
Posted
技术标签:
【中文标题】实体框架包含/包含 SQLCE 子句【英文标题】:Entity Framework Contains/In Clause with SQLCE 【发布时间】:2010-12-01 14:40:17 【问题描述】:我正在尝试从 SQLCE 表中选择项目,其中字段存在于字符串数组中。这在 SQL 中很容易:
SELECT *
FROM TableX
WHERE SomeField In
([comma delimited array values]);
我很难将其转换为 LINQ。以下内容在逻辑上可行,但收到此错误:LINQ to Entities 无法识别方法 'Boolean Contains[String](System.Collections.Generic.IEnumerable`1[System.String], System.String) ' 方法,并且该方法不能翻译成商店表达式。
var result = from c in DB.TableX
where someStringArray.Contains(c.SomeField)
select c;
如果有人有任何想法或建议,请告诉我。
谢谢!
更新:
下面推荐的以下内容会引发 NotSupportedException,并带有错误消息,其中类 X 是调用枚举的类:无法创建类型为“NamespaceX.ClassX”的常量值。此上下文仅支持原始类型(“例如 Int32、String 和 Guid”)。
var result = from c in DB.TableX
where someStringArray.Any(s => s == c.SomeField)
select c;
【问题讨论】:
下面的答案不起作用?它对我有用。 查看这篇文章:blogs.msdn.com/b/alexj/archive/2009/03/26/… 【参考方案1】:试试
var result = from c in DB.TableX
where someStringArray.Any(s => s == c.SomeField)
select c;
如果这解决了您的问题,请标记为答案。
【讨论】:
使用 .Contains() 而不是 .Any()以上是关于实体框架包含/包含 SQLCE 子句的主要内容,如果未能解决你的问题,请参考以下文章