实体框架使用一个查询将多个集合添加到集合中

时间:2015-06-04 10:19:55

标签: c# entity-framework

想象一下以下场景...... 我有一个包含关键字的数组:

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;

是否可以通过一个查询获取它,如果是这样的话?

  • 请注意,上述示例无效。

1 个答案:

答案 0 :(得分:0)

请使用以下linq:

var newsArticles = (from a in db.NewsArticles
               where keywords.Contains(a.Title)
               select a).ToList();