日常生活的交流与学习

首页 新随笔 联系 管理

EF Core 中,如果查询查询外键表的内容

实体

public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }
    public List<Post> Posts { get; set; } // 集合导航属性
    public List<Comment> Comments { get; set; } // 集合导航属性
}
public class Post
{
    public int PostId { get; set; }
    public string Title { get; set; }
    // 其他属性...
    public List<Author> Authors { get; set; }
}
public class Comment
{
    public int CommentId { get; set; }
    public string content { get; set; }
    // 其他属性...
    public int PostId { get; set; }
    public Post Post { get; set; }

}
public class Author
{
    // 其他属性...
    public int PostId { get; set; }
    public Post Post { get; set; }
}

ef core中查询外键属性

  1. Entity Framework Core (EF Core) 中,如果两个实体涉及到外键连接,查询的时候默认只会查自身而不会去查询外键表的内容。
    如果想要让查询结果包含外键实体,可以使用 Include 方法来让查询结果包含外键实体。

  2. 假设我要查询上面的Blog,同时其关联的表也进行查询,则linq查询语句如下:

var blogWithDetails = dbContext.Blogs
    .Include(b => b.Posts)
        .ThenInclude(p => p.Authors)
    .Include(b => b.Comments)
    .FirstOrDefault(b => b.BlogId == specificBlogId);
posted on 2024-04-25 11:47  lazycookie  阅读(253)  评论(0编辑  收藏  举报