Alw*_*wyn 0 .net c# linq entity-framework join
我有一个实体让我们说它Blog
.每个Blog
实体都有很多Keyword
.2通过关键字表上的fk相关.
我有一个像这样的签名的查询 FindAllBlogByKeywords(IEnumerable<string> keywords)
我如何编写一个linq查询来拉取任何匹配参数中所有关键字的博客.
问题是EF不允许可枚举和表之间的连接.它不包含因为我希望查询匹配所有关键字,而不仅仅是任何一个 - 除了我有2个关键字列表,我需要参数中的关键字作为持久性中关键字的子集.
您可以为每个关键字添加.Where子句:
IEnumerable<Blog> FindAllBlogByKeywords(IEnumerable<string> keywords)
{
IQueryable<Blog> query = context.Blogs;
foreach(string key in keywords)
query = query.Where(blog => blog.Keywords.Contains(key));
// Execute query (optional)
return query.ToList();
}
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为查询执行被推迟到结束.通过链接多个.Where
子句,您可以有效地创建"ALL"语句.
归档时间: |
|
查看次数: |
284 次 |
最近记录: |