强制EF Core 2.0迁移以使用上下文的全名空间

时间:2018-04-24 06:34:42

标签: c# entity-framework-core

我正在尝试使用以下命令生成迁移脚本

dotnet ef migrations add InitApplicationDbContext -c ApplicationDbContext -o Migrations/ApplicationDbContext

它成功生成了脚本,但是当我尝试构建项目时,它显示错误

  

' ApplicationDbContext是一个命名空间,但用作类型'

生成的文件如下所示

namespace Service.Migrations.ApplicationDbContext
{
    [DbContext(typeof(ApplicationDbContext))]
    [Migration("20180424060822_InitApplicationDbContext")]
    partial class InitApplicationDbContext
    {
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
          // Removed for clarity
        }
    }
}

错误在此行[DbContext(typeof(ApplicationDbContext))]上。 如果我更改此行以包含声明上下文的命名空间,那么一切正常[DbContext(typeof(Service.Context.ApplicationDbContext))] 另一个选项是从自动生成的代码中删除命名空间中的上下文名称,例如namespace Service.Migrations.ApplicationDbContextnamespace Service.Migrations

有没有办法强制dotnet ef命令指定命名空间或使用上下文的完整类型名称?

1 个答案:

答案 0 :(得分:0)

目前您无法自己指定命名空间,但它们在backlog中存在该问题,因此您可以在将来的版本中使用它。