在 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中查询外键属性
-
在 Entity Framework Core (EF Core) 中,如果两个实体涉及到外键连接,查询的时候默认只会查自身而不会去查询外键表的内容。
如果想要让查询结果包含外键实体,可以使用Include
方法来让查询结果包含外键实体。 -
假设我要查询上面的Blog,同时其关联的表也进行查询,则linq查询语句如下:
var blogWithDetails = dbContext.Blogs
.Include(b => b.Posts)
.ThenInclude(p => p.Authors)
.Include(b => b.Comments)
.FirstOrDefault(b => b.BlogId == specificBlogId);