相关疑难解决方法(0)

过滤包含在EF Core中

我正在尝试过滤初始查询.我已经嵌套了包含模型的叶子.我正在尝试根据其中一个包含的属性进行过滤.例如:

using (var context = new BloggingContext())
{
    var blogs = context.Blogs
        .Include(blog => blog.Posts)
            .ThenInclude(post => post.Author)
        .ToList();
}
Run Code Online (Sandbox Code Playgroud)

我怎么能说呢.Where(w => w.post.Author == "me")

entity-framework-core

29
推荐指数
5
解决办法
2万
查看次数

Include / ThenInclude 与 EF Core 中的 where

我需要在 ThenInclude 中使用 where

        var templatesFields = await _context.Sections
        .Include(x => x.Subtitles)
        .ThenInclude(r => r.Fields.Where(t=>t.TemplatesFields.TemplateID==TemplateID))
        .ThenInclude(r => r.OptionSources)
        .ThenInclude(r => r.OptionsSourcesDetails)
        .ToListAsync();
Run Code Online (Sandbox Code Playgroud)

linq api entity-framework .net-core asp.net-core

3
推荐指数
1
解决办法
5466
查看次数

EF Core选择由相关实体过滤的一个实体

我有一个问题,我很难找到答案.

我有3个实体类,其关系类似于(简化):

class Article {
 public int id
 public string Name
 public int ArticleStandard Id
 public int CompanyId
 public ArticleStandard ArticleStandardNavigation
 public Company CompanyNavigation
}
class ArticleStandard {
 public int id
 public ICollection<Article> Articles
}
class Company {
 public in id
 public ICollection<Article> Articles
}
Run Code Online (Sandbox Code Playgroud)

所以关系是1公司可以有很多文章,1标准文章可以有很多文章.它们都在DBContext中设置为DBSets.鉴于是ArticleStandard的Id.我现在想通过文章实体获得所有拥有此标准文章的公司.我想"生产"的TSQL是:

  select c.* from Company c
  inner join Article a on c.ID = a.CompanyId
  inner join ArticleStandard on a.ArticleStandard = arts.id
  Where arts.Id = 1
Run Code Online (Sandbox Code Playgroud)

这给出了我想要的结果.

我尝试了很多,我不想发布我的所有试验来解决这个问题,这可以让它与Include和ThenInclude一起工作.但我不想得到所有文章和文章标准.如果我只选择公司,则忽略包含:https: //docs.microsoft.com/en-us/ef/core/querying/related-data#ignored-includes

var vtp = context.Company.Include(a => …
Run Code Online (Sandbox Code Playgroud)

c# linq include entity-framework-core

2
推荐指数
1
解决办法
2233
查看次数