代码之家  ›  专栏  ›  技术社区  ›  griegs

字符串数组中的LINQ to SQL条件

  •  0
  • griegs  · 技术社区  · 15 年前

    我说有三张桌子。

    项目

    • 身份证件
    • 名字

    类别

    • 身份证件
    • 名字

    项目类别

    • 身份证件
    • 投射物
    • 分类ID

    我现在有了一个字符串数组,它表示用户选择搜索的类别。我现在需要找到所有附加了这些类别的项目。

    我试过了;

    string[] searchTerms = new string[2];
    searchTerms[0] = "paint";
    searchTerms[1] = "painting";
    
    IQueryable<Project> projects = (from category in dc.ProjectCategories
    where searchTerms.Any(val => category.Category.Name.Contains(val))
    select category.Project).Distinct();
    

    但我得到了错误;

    “除了contains()运算符之外,在查询运算符的linq to sql实现中不能使用本地序列。”

    1 回复  |  直到 15 年前
        1
  •  1
  •   tvanfosson    15 年前

    除非我误解了你的意思,这是可能的,我想你可以用搜索词做一个包含

    where searchTerms.Contains( category.Category.Name )
    

    这将转换为SQL

    ... WHERE Name IN ('paint','painting') ...