EntityFramework - 将 WithRequired 移植到 EF Core

Lon*_*ish 3 entity-framework-6 asp.net-core-mvc

我正在将应用程序从 MVC5/EF6 移植到 MVC6/EF7,但此特定行出现问题:

        modelBuilder.Entity<Client>().HasMany(c => c.Payments).WithRequired(e => e.Client).WillCascadeOnDelete(false);
Run Code Online (Sandbox Code Playgroud)

显然,WillCascadeOnDelete 已转换为以限制为参数的 OnDelete,但我找不到有关“WithRequired”部分的任何文档,该部分在 EF7 中也消失了。'WithOne' 具有相同的影响还是我在这里完全错了:

        modelBuilder.Entity<Client>().HasMany(c => c.Payments).WithOne(e => e.Client).OnDelete(Microsoft.EntityFrameworkCore.Metadata.DeleteBehavior.Restrict);
Run Code Online (Sandbox Code Playgroud)

Ted*_*ddy 6

在这两种情况下你都是正确的。这是详细的帖子... http://www.mikee.se/posts/migration_from_ef6_to_ef_core

通常,这些映射在 EF6 中会发生变化。

x.Entity<Company>()
    .HasMany(c => c.StatementOfEarnings)
    .WithRequired(e => e.Company)
    .WillCascadeOnDelete(false);
Run Code Online (Sandbox Code Playgroud)

在 EF Core 中对此

x.Entity<Company>()
    .HasMany(c => c.StatementOfEarnings)
    .WithOne(e => e.Company)
    .OnDelete(DeleteBehavior.Restrict);
Run Code Online (Sandbox Code Playgroud)