我正在尝试从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;
答案 0 :(得分:1)
试
var result = from c in DB.TableX
where someStringArray.Any(s => s == c.SomeField)
select c;
如果这可以解决您的问题,请标记为答案。