[英]Linq to Entity Filter using Navigation Property
我想在实体框架中过滤导航属性。 从此处给出的示例中https://docs.microsoft.com/zh-cn/ef/core/querying/related-data
using (var context = new BloggingContext())
{
var blogs = context.Blogs
.Include(blog => blog.Posts)
.ToList();
}
如果我想过滤特定的博客和帖子,该如何过滤? 即使帖子不存在,也必须返回博客详细信息
我想要下面的东西
var blogs = context.Blogs
.Include(blog => blog.Posts)
.Where(b => b.BlogId == 1 && b.Posts.PostId == 2);
在上述情况下,如果postid 2可用于blogid 1,则应同时返回两者。 如果博客可用,则应仅返回博客详细信息。 我该如何实现?
从SQL角度看,它就像一个左联接。
问候乔
在两个查询上进行组联接应该起作用(以下假设您希望每个博客发表一篇文章,如果不是这样,请删除FirstOrDefault()):
var blogs = context.Blogs.Where(a => a.BlogId == 1);
var posts = context.Posts.Where(a => a.PostId == 2);
var blogWithPost = blogs.GroupJoin(posts, a => a.BlogId, a => a.PostId, (a,b) => new { Blog=a, Post = b.FirstOrDefault() });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.