想象一下以下场景...... 我有一个包含关键字的数组:
string[] keywords= new string[] { "someKeyword", "otherKeyword", "andAnother One"};
在我的数据库中,我有一个新闻文章表。每篇新闻文章都有一个标题,即关键字之一。
我想通过一个查询获取包含数组中关键字的所有新闻文章。
目前我迭代关键字并在其中的每个项目前运行查询:
List<NewsArticle> allArticles = new List<NewsArticle>();
foreach (var key in keywords)
{
var articles = db.NewsArticle.FindAllAsync(x => x.Title = key).Result;
allArticles.Add(articles);
}
这样可行,但我正在使用keywords.Length查询获取数据。我试图用一个查询获取数据。 如下所示:
var newsArticles = db.NewsArticle.All().Where(a => keywords.Any(k => k.Equals(a.Title)));
或
var newsArticles = from a in db.NewsArticles.All()
join k in keywords on NewsArticle.Title equals k
select a;
是否可以通过一个查询获取它,如果是这样的话?
答案 0 :(得分:0)
请使用以下linq:
var newsArticles = (from a in db.NewsArticles
where keywords.Contains(a.Title)
select a).ToList();