我最近将我的项目从 .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();
如何阻止“#nullable disable”行出现在自动生成的 ContextModelSnapshot.cs 中。
这两个例子,从 .net5 到 .net7 时发生变化是正常的,还是发生了什么?