从Entity Framework Core 2.0迁移到2.1时出现类型问题

时间:2018-10-05 06:21:46

标签: entity-framework-core asp.net-core-2.1 entity-framework-core-2.1 entity-framework-core-migrations

我们正在将asp.net核心应用程序(在完整的.net框架上运行)从asp.net 2.0 / ef核心2.0升级到asp.net 2.1 / ef核心2.1。 我感到惊讶的是,进行次要更新会令人头疼……

无论如何,在升级到2.1并在不对模型进行任何代码更改的情况下添加迁移后,EF会创建一个迁移,以将我们使用的(唯一的)自有类型移动到单独的表中。 为什么? [documentation] [1]另有说明:

  

使用关系数据库时,按惯例映射拥有的类型   和所有者在同一张桌子上。

我们可以通过添加ToTable()并传递父实体的名称来解决此问题,但我们不明白为什么首先需要这样做。

之前:

builder.Entity<Chart>().OwnsOne(c => c.BarLineOptions);

之后:

builder.Entity<Chart>().OwnsOne(c => c.BarLineOptions).ToTable("Chart");

我们还尝试使用新的OwnedAttribute删除此流利的配置,但这会导致相同的问题,因此我们确实需要流利的配置来调用ToTable()

更新:如果不创建迁移,则在启动应用程序时会出现异常,说明表BarLineOptions不存在

0 个答案:

没有答案