是否有其他人在Shawn Wildermuth的Pluralsight课程中遇到第二次迁移的问题"使用ASP.NET Core RC1,MVC 6,EF7& A构建Web应用程序。 AngularJS"
具体来说,命令
dnx ef migrations add IdentityEntities
导致此异常:
GenericArguments[0], 'TheWorld.Models.IWorldRepository', on 'Microsoft.Data.Entity.Infrastructure.IDbContextFactory`1[TContext]' violates the constraint of type 'TContext'.
第一次迁移和数据库创建似乎很顺利,所以我不确定导致这种情况的原因。
答案 0 :(得分:6)
我刚刚通过从解决方案资源管理器中删除整个Migrations文件夹来修复此问题。我不确定是什么导致了这个错误,但我认为如果你将迁移命名为同一个东西(在你的情况下是IdentityEntities),则可能会出现问题。
答案 1 :(得分:4)
您似乎应该明确指定迁移名称和上下文作为参数。我不确定使用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"
工作得很好。