C# 实体框架包含/In子句和SQLCE

C# 实体框架包含/In子句和SQLCE,c#,.net,linq,entity-framework,sql-server-ce,C#,.net,Linq,Entity Framework,Sql Server Ce,我试图从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.

我试图从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)’方法,并且此方法无法转换为存储表达式

如果有人有任何想法或建议,请告诉我

谢谢

更新:

下面介绍的以下内容引发NotSupportedException,并显示错误消息,其中类X是调用枚举的类:无法创建“NamespaceX.ClassX”类型的常量值。在此上下文中仅支持基本类型(“如Int32、String和Guid”)

试一试

如果这解决了您的问题,请将其标记为答案。

试试看


如果这解决了您的问题,请将其标记为答案。

下面的答案无效?对我来说是这样。检查这篇文章:下面的答案不起作用?对我来说确实如此。检查本文:使用.Contains()代替.Any()使用.Contains()代替.Any()
var result = from c in DB.TableX
             where someStringArray.Contains(c.SomeField)
             select c;
var result = from c in DB.TableX
             where someStringArray.Any(s => s == c.SomeField)
             select c;
var result = from c in DB.TableX
             where someStringArray.Any(s => s == c.SomeField)
             select c;