EF6基于某种过滤器加载相关实体的子集

本文关键字:实体 子集 加载 于某种 过滤器 EF6 | 更新日期: 2023-09-27 18:21:53

我发现了这个http://msdn.microsoft.com/en-US/data/jj574232然而,这似乎只适用于单个实体

var blog = context.Blogs.Find(1); 
// Load the posts with the 'entity-framework' tag related to a given blog 
context.Entry(blog) 
    .Collection(b => b.Posts) 
    .Query() 
    .Where(p => p.Tags.Contains("entity-framework") 
    .Load();

由于博客不仅仅是一个实体。。。而是一个本身的集合。有人知道如何重写这个吗?Entry正在博客的集合上运行。我找不到任何关于这样的事情是否可能的文件

这意味着你不必获取一个特定的并对其进行操作,但它会循环遍历每个并执行操作。

context.Blogs.ForEach(entity in Blogs).Collection(b => b.Posts) 
    .Query() 
    .Where(p => p.Tags.Contains("entity-framework") 
    .Load();

EF6基于某种过滤器加载相关实体的子集

我认为这应该做到:

var posts = context.Blogs
                   .SelectMany(x => x.Posts)
                   .Where(x => x.Tags.Contains("entity-framework");