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