C# LINQ到SQL相交查询失败

C# LINQ到SQL相交查询失败,c#,asp.net,linq,linq-to-sql,C#,Asp.net,Linq,Linq To Sql,我有一个常见问题(FAQ)数据库,其中包含以下列:id、问题、答案、类别和关键字 我想从用户那里获取输入,并在数据库中搜索匹配项。我最终希望获取搜索字符串并检索所有记录,其中在问题或关键字列中找到搜索字符串的任何 由于我在LINQtoSQL方面相对较新,所以我尝试先使用单列搜索,然后尝试使用双列搜索。我的代码仍然失败。我看过其他类似的帖子,但推荐的解决方案并不完全适合我的情况。试图调整这些解决方案的尝试失败了 我的代码中有问题的部分: private FAQViewModel getSearch

我有一个常见问题(FAQ)数据库,其中包含以下列:id、问题、答案、类别和关键字

我想从用户那里获取输入,并在数据库中搜索匹配项。我最终希望获取搜索字符串并检索所有记录,其中在问题关键字列中找到搜索字符串的任何

由于我在LINQtoSQL方面相对较新,所以我尝试先使用单列搜索,然后尝试使用双列搜索。我的代码仍然失败。我看过其他类似的帖子,但推荐的解决方案并不完全适合我的情况。试图调整这些解决方案的尝试失败了

我的代码中有问题的部分:

private FAQViewModel getSearchResultFAQs(string search)
    {
        FAQViewModel vm = new FAQViewModel();
        vm.isSearch = true;

        string[] searchTerms = search.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
        //var ques = db.FAQs.Where(q => q.Keywords.Intersect(searchTerms).Any());
        var ques = db.FAQs.Where(q => searchTerms.Any(t => q.Keywords.Contains(t)));
        List<FAQ> list = new List<FAQ>();

        foreach(var qs in ques)
        {
            FAQ f = new FAQ();
            f.Question = qs.Question;
            f.Answer = qs.Answer;
            f.Category = qs.Category;
            f.Keywords = qs.Keywords;
            f.id = qs.id;

            list.Add(f);
        }

        CategoryModel cm = new CategoryModel();
        cm.faqs = list;

        vm.faqs.Add(cm);

        return vm;
    }

我在这里真的有点不知所措,但它离工作太近了。

什么类型的
关键字
?是一根线吗?你能提供一个数据的例子吗?有没有任何答案解决了你的问题?此外,我在上面的评论中提出的问题在将来仍然值得澄清readers@GiladGreen我尝试了你在下面发布的两个建议。我两个都有错误。您是正确的关键字将在一个字段中包含多个字符串。自从发布这个问题以来,我不得不修改我的代码,我已经在上面更新了。我将在编辑中包含更多信息。
关键字的类型是什么?是一根线吗?你能提供一个数据的例子吗?有没有任何答案解决了你的问题?此外,我在上面的评论中提出的问题在将来仍然值得澄清readers@GiladGreen我尝试了你在下面发布的两个建议。我两个都有错误。您是正确的关键字将在一个字段中包含多个字符串。自从发布这个问题以来,我不得不修改我的代码,我已经在上面更新了。我将在编辑中包含更多信息。
foreach(var qs in ques)