c# - 如何在 DLINQ 中使用项目列表执行 Contains()?

标签 c# dynamic-linq

我想构建一个 dlinq 查询来检查标题中是否包含任意数量的项目。我知道您可以对列表执行 .Contains(),但我需要检查标题是否包含任何项目,而不是项目是否包含部分标题。例如:我在列表中有三个项目“培根、鸡肉、 pig 肉”。我需要 “鸡舍” 的标题来匹配。

   var results = (from l in db.Sites
   where list.Contains(l.site_title)
   select l.ToBusiness(l.SiteReviews)).ToList();

如果我尝试前 2 个答案,我会得到一个错误 “Local sequence cannot be used in LINQ to SQL implementation of query operators except the Contains() operator.”

第三个解决方案给了我

Method 'System.Object DynamicInvoke(System.Object[])' has no supported translation to SQL."

最佳答案

尝试以下操作。您可以结合使用 Where 和 Any 来搜索子字符串匹配项。

var results = (from l in db.Sites
                where list.Where(x => 0 != x.IndexOf(l)).Any()
                select l.ToBusiness(l.SiteReviews)).ToList();

关于c# - 如何在 DLINQ 中使用项目列表执行 Contains()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/605012/

相关文章:

c# - 不能声明主体,因为它被标记为抽象

c# - 动态 Linq - 在运行时设置 orderby 表达式类型

c# - 在动态 Linq 查询中嵌套 OrderBy 如何工作?

c# - 如何从字符串创建属性(集合)表达式选择器?

c# - 使用属性 CharacterSet 的值模拟 HttpWebResponse

c# - 动态设置Word CustomTaskPane宽度

c# - 您如何在应用程序域之间传递经过身份验证的 session

C# 如何将矩形移动一定的距离 (+x,+y)

c# - 如何使用带有索引而不是属性名称的动态 linq

C# 动态 Linq 三元运算符