add-migrations 在自动生成的文件中禁用可为空值

问题描述 投票:0回答:0

我最近将我的项目从 .net 5 更新到 .net 7 - 问题与此相关。

当我运行 [add-migration nameofmychanges] 时,我得到了很多更改,但我没有进行任何更改。

在类 ContextModelSnapshot.cs 的顶部添加了一个#nullable disable,我看到很多行想要将我的所有实体更改为 nullable:false 和 default:0.

但也看到了许多这些变化:

来自:

b.Property<int>("Id")
                    .ValueGeneratedOnAdd()
                    .HasColumnType("int")
                    .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

致:

b.Property<int>("Id")
                    .ValueGeneratedOnAdd()
                    .HasColumnType("int");

                SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

另一个例子:

来自:

b.HasOne("EFDataAccessLayer.Entities.User", "CreatedBy")
                    .WithMany()
                    .HasForeignKey("CreatedById");

致:

b.HasOne("EFDataAccessLayer.Entities.User", "CreatedBy")
                    .WithMany()
                    .HasForeignKey("CreatedById")
                    .OnDelete(DeleteBehavior.Cascade)
                    .IsRequired();
  1. 如何阻止“#nullable disable”行出现在自动生成的 ContextModelSnapshot.cs 中。

  2. 这两个例子,从 .net5 到 .net7 时发生变化是正常的,还是发生了什么?

entity-framework entity-framework-migrations .net-7.0
© www.soinside.com 2019 - 2024. All rights reserved.