【问题标题】:EF7 migration in Pluralsight coursePluralsight 课程中的 EF7 迁移
【发布时间】:2016-04-21 17:08:05
【问题描述】:

Shawn Wildermuth 的 Pluralsight 课程“使用 ASP.NET Core RC1、MVC 6、EF7 和 AngularJS 构建 Web 应用程序”中的第二次迁移是否有其他人遇到问题?

具体来说,命令

dnx ef migrations add IdentityEntities

导致此异常:

GenericArguments[0], 'TheWorld.Models.IWorldRepository', on 'Microsoft.Data.Entity.Infrastructure.IDbContextFactory`1[TContext]' violates the constraint of type 'TContext'.

第一次迁移和数据库创建似乎很顺利,所以我不确定是什么原因造成的。

【问题讨论】:

    标签: migration entity-framework-core


    【解决方案1】:

    我刚刚通过从解决方案资源管理器中删除整个迁移文件夹来解决此问题。我不确定导致此错误的确切原因,但我认为如果您将迁移命名为相同的东西(在您的情况下为 IdentityEntities),则可能会发生问题。

    【讨论】:

      【解决方案2】:

      您似乎应该明确指定迁移名称和上下文作为参数。我不确定使用 dnx 时的含义,但是在 Visual Studio 中使用包管理器控制台时,正确的命令是

      Add-Migration -Name "MyProjectMigration" -Context "MyProjectContext"
      

      我第一次尝试简单

      Add-Migration MyProjectContext
      

      生成了2个文件,之后

      Database-Update
      

      结果是System.ArgumentException: GenericArguments[0], 'SqliteEfcExample.Migrations.MyProjectContext', on 'Microsoft.EntityFrameworkCore.Infrastructure.IDbContextFactory 1[TContext]' violates the constraint of type 'TContext'.

      然后我删除了 Add-Migration MyProjectContext 生成的 2 个文件(感谢 @brendan-l 的提示)并使用 Add-Migration -Name "MyProjectMigration" -Context "MyProjectContext" 重新创建它们,然后

      Update-Database -Context "MyProjectContext"
      

      工作得很好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-04-03
        • 1970-01-01
        • 2016-06-07
        • 2019-06-06
        • 2015-09-27
        • 2015-10-16
        • 2016-01-16
        相关资源
        最近更新 更多