Pluralsight课程中的EF7迁移

时间:2016-04-21 17:08:05

标签: migration entity-framework-core

是否有其他人在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'.

第一次迁移和数据库创建似乎很顺利,所以我不确定导致这种情况的原因。

2 个答案:

答案 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"

工作得很好。