ef core 2.2预览版迁移更改

时间:2018-11-23 12:52:17

标签: c# entity-framework entity-framework-core ef-core-2.1

我们刚刚将Entity Framework Core从2.1更新到2.2.Preview3。 似乎迁移器/模型构建器已更改,我想知道这是错误还是修复。

如果具有以下实体:

public class User {
    public string UserName { get; set; }
    public Guid? PasswordGUID { get; set; }
    [ForeignKey("PasswordGUID")]
    public Password Password { get; set; }
}

实体类密码没有实体类User的导航属性。

在EfCore 2.1中,用户密码关系在模型快照中具有以下几行:

...
u.Property<Guid?>("PasswordGUID");
...
u.HasIndex("PasswordGUID");
...
u.HasOne("Password", "Password")
    .WithMany()
    .HasForeignKey("PasswordGUID");

现在从EfCore 2.1升级到2.2.Preview3(实体类未更改)后,模型进行了以下更改:

...
u.Property<Guid?>("PasswordGUID")
    .IsRequired();
...
u.HasIndex("PasswordGUID")
    .IsUnique();
...
u.HasOne("Password", "Password")
    .WithOne()
    .HasForeignKey("PasswordGUID")
    .OnDelete(DeleteBehavior.Cascade);

因此,如上所述,我的问题是:这是正确的吗?现在我是否必须在ModelBuilder Fluent API中“还原”这些更改,或者这是一个错误?

旁注:奇怪的是,当我删除属性“ [ForeignKey(“ PasswordGUID”)]“

时,我注意到EfCore 2.1具有相同的行为

0 个答案:

没有答案