WithOptional with Entity Framework 核心

WithOptional with Entity Framework Core

我正在尝试将我的旧应用程序迁移到新的 EF Core,但我找不到一些关系,例如:

  HasRequired(o => o.Document).WithOptional(o => o.CancelNote);

有没有一些扩展方法?我在文档中找不到。

HasRequired 我认为可以用 HasOne() 方法代替,但是 WithOptional() 怎么样?

另外,根据 docs 实体不使用 virtual 关键字来创建导航属性,延迟加载将如何工作?

您不会在 EF7 中找到 HasOptional 等效方法。按照惯例,如果你的 FK 属性 是 nullable,你的导航 属性 将被视为可选

 modelBuilder.Entity<Blog>()
                .HasOne(p => p.Document)
                .WithOne(i => i.CancelNote)
                .HasForeignKey<Document>(b => b.CancelNoteForeignKey);

关于你的第二个问题,EF Core (EF7) 不支持延迟加载。在此 link 中,您将找到现在用于加载相关实体的选项