- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个 ASP.NET Core API 应用程序,并依赖于 EF Core。我有这样定义的实体:
public class AppUser : IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
[InverseProperty(nameof(Post.Author))]
public ICollection<Post> Posts { get; set; } = new List<Post>();
}
public class Post
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string AuthorId { get; set; }
[ForeignKey("AuthorId")]
public virtual AppUser Author { get; set; }
[InverseProperty(nameof(Like.Post))]
public ICollection<Like> Likes { get; set; } = new List<Like>();
[InverseProperty(nameof(Comment.Post))]
public ICollection<Comment> Comments { get; set; } = new List<Comment>();
}
Comment
和
Like
是其他一些实体。请注意,为简洁起见,我已经简化了实体。然后,我想得到
Posts
用户,但也包括
Likes
和
Comments
一个帖子得到了。所以,我做了这样的事情:
return _context.Users
.Include(u => u.Location)
.Include(u => u.Posts)
.ThenInclude(p => p.Comments)
.ThenInclude(c => c.Owner)
.Include(u => u.Posts)
.ThenInclude(p => p.Likes)
.ThenInclude(l => l.Giver)
.Where(u => u.Id == userId)
.FirstOrDefault();
.Include(u = u.Posts)
两次。有没有办法调用
ThenInclude
在同一属性上两次,实际上没有写
Include
声明还两次?
最佳答案
Now, this works fine, but as you can see I'm calling .Include(u = u.Posts) twice. Is there a way to call ThenInclude twice on same property, without actually writing the Include statement also twice?
Include(u => u.Posts)
两次是正确的方法。
You may want to include multiple related entities for one of the entities that is being included. For example, when querying
Blog
s, you includePosts
and then want to include both theAuthor
andTags
of thePosts
. To do this, you need to specify each include path starting at the root. For example,Blog -> Posts -> Author
andBlog -> Posts -> Tags
. This does not mean you will get redundant joins, in most cases EF will consolidate the joins when generating SQL.
using (var context = new BloggingContext())
{
var blogs = context.Blogs
.Include(blog => blog.Posts)
.ThenInclude(post => post.Author)
.Include(blog => blog.Posts)
.ThenInclude(post => post.Tags)
.ToList();
}
关于c# - 如何在 EF Core 中调用 ThenInclude 两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50897638/
众所周知,EF-Core 中没有延迟加载。因此,这意味着我不得不事后才进行查询。既然要思考,那我就试着好好的去做吧。 我有一个相当标准的更新查询,但我想嘿,我不必总是包含 HeaderImage 和
我一直在尝试使用 Entity Framework,在遇到以下错误后,我尝试使用 ThenInclude 来解决它。 The expression '[x].ModelA.ModelB' passed
这是我的通用存储库: public class Repository : IRepository where T : BaseEntity { private DbContext _dbCon
我将.NET Framework(EF6)代码传输到ASP.NET Core(EF Core),但我偶然发现了这个问题。这是一些示例代码: 在EF6中,我使用Include()和Select()进行预
有没有人看到我做错了什么? ProjectActivityTasks 具有 UnitOfMeasureId 和 ProjectActivityTaskTypeId。按照它的编写方式,它认为 UnitO
我看到一些包含 ThenInclude 的 LINQ 代码示例。我在哪里可以找到这样的方法?在外部库或其他命名空间中。 我想用这样的方法获取派生数据,但是我找不到这样的方法或者你知道其他解决方案吗
这个问题在这里已经有了答案: Filtering on Include in EF Core (9 个回答) 关闭 5 个月前。 我有 3 个实体: Questionnaire.cs: public
我使用以下查询根据需要过滤我的 BranchId。 var query = await _dbContext.TargetItems .Include(i => i.Br
我有一个这样的查询 return await _ctx.Activities .Include(a => a.Attributes) .Include(
我的 IQueryable 看起来像这样: IQueryable query = context.Set(); query = query.Include("Car").ThenInclude("M
英孚核心 3.1 我见过Specification例如,并希望实现 ThenInclude 模式。 public static class QuerySpecificationExtensions {
我正在创建一个 ASP.NET Core API 应用程序,并依赖于 EF Core。我有这样定义的实体: public class AppUser : IdentityUser { publ
我将 Entity Framework Core 与 Repository Pattern 一起使用,但遇到一个问题。 我有类 Customer、Company 和 Email,其中隐藏了与此处无关的
假设首先有这些模型: Method 有一个 OriginalCodeOriginalCode 有很多 MutantMutant 有许多 ParseSubTree 现在,当查询 Method 时,我希望
这个问题在这里已经有了答案: Can not load related data with Include or ThenInclude or Select/Many with ONE query
我需要在 ThenInclude 中使用 where var templatesFields = await _context.Sections .Include(x
假设首先拥有这些模型: Method有一个 OriginalCodeOriginalCode有很多Mutant秒Mutant有很多ParseSubTree秒 现在在 Method 上查询时我想要另一个
以前(使用 .net 4.5.2 和 EF 6 时)。我有一个通用的 Get接受多个包含的方法如下; public abstract class DataContext : IdentityDbCon
好的,所以我有一个表 Building,其中包含该建筑物中的所有人员。然而,每个人都有一个职业,它本身就是一个实体,根据可用的内容添加到 Person 实体。 var data = _dbcontex
我正在使用 EF core 2.0 并想过滤子集合。谁能帮助我如何在 EF 核心 2.0 中执行此操作? var items = await _context.RiskType
我是一名优秀的程序员,十分优秀!