【发布时间】: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;
【问题讨论】:
-
下面的答案不起作用?它对我有用。
标签: c# .net linq entity-framework sql-server-ce