无法实现数据库模型关系

Unable to implement database model relationships

我的 postgres 应用程序有问题。 对于背景,我正在尝试实现这个数据库模型:

public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }

    public List<Post> Posts { get; set; }
}

public class Post
{
    public int PostId { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }

    public int BlogId { get; set; }
    public Blog Blog { get; set; }
}

我能够在 Postgres 中正确地创建数据库,将我的 .Net 应用程序连接到数据库等。唯一阻碍我的是在我保存对象之后:

var blog = new Blog();
blog.Url = "UrlTest";

var post = new List<Post>();
var entry = new Post();
post.Title = "Entry Title";
post.Add(entry);

blog.Posts = post;
context.Blog.Add(blog);
context.SaveChanges();

只是一个简单的一对多关系。保存更改后,我查询上下文,它能够看到我刚刚创建的博客和 Post 之间的关系。

不幸的是,当我重新启动我的 .Net Core 应用程序并尝试列出所有博客时,它将显示为空,但是当我转到数据库服务器并查询时 Post table 我能够确认它仍然有博客 ID。

我尝试了以下所有建议,但没有任何效果: Entity framework code-first null foreign key

编辑: 这是我的 DbContext:

 protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Blog>();
        modelBuilder.Entity<Post>();
        modelBuilder.Entity<Blog>()
            .HasMany(c => c.Post)
            .WithOne(c => c.Blog)
            .HasForeignKey(c => c.BlogId)
            .OnDelete(deleteBehavior: DeleteBehavior.Cascade);
        base.OnModelCreating(modelBuilder);
    }

    public DbSet<Post> Posts { get; set; }
    public DbSet<Blog> Blogs { get; set; }

我还尝试将虚拟放在博客模型的列表和 Post 模型的博客上,但没有成功

这个答案实际上来自 Mustafa Gursel 对我 post - docs.microsoft.com/en-us/ef/core/querying/related-data

的评论

我不确定它是与 Postgres 相关还是 .net 核心,因为我在 .Net MVC 4 和 MSSQL 上的经验是除了声明 "virtual" 之外我不需要声明延迟加载。

在这种情况下,我需要安装 Entity Framework 代理以使其在不进行预加载的情况下工作。