启用迁移在 ASP MVC 5 中不起作用

Posted

技术标签:

【中文标题】启用迁移在 ASP MVC 5 中不起作用【英文标题】:Enable Migrations doesn't work in ASP MVC 5 【发布时间】:2018-01-10 23:22:00 【问题描述】:

我正在尝试在我的项目中启用迁移,但我总是收到此错误:

在程序集“CarManagement”中发现了多个上下文类型。 要为“CarManagement.Models.CarManagementContext”启用迁移,请使用 Enable-Migrations

-ContextTypeName CarManagement.Models.CarManagementContext.

要为“CarManagement.Models.ApplicationDbContext”启用迁移,请使用

Enable-Migrations -ContextTypeName CarManagement.Models.ApplicationDbContext

当我尝试只使用一个上下文时,它也不起作用并出现此错误:

Enable-Migrations:找不到接受参数“CarManagement.Models.CarManagementContext.”的位置参数。 在 line:1 char:1

Enable-Migrations -ContextTypeName eManager CarManagement.Models.CarM ...
  + CategoryInfo          : InvalidArgument: (:) [Enable-Migrations], ParameterBindingException
  + FullyQualifiedErrorId : PositionalParameterNotFound,Enable-Migrations

【问题讨论】:

显示你的整个命令行。我认为您在其中某个地方有一个流氓“eManager”。 PM> Enable-Migrations 在程序集“CarManagement”中发现了多个上下文类型。要为“CarManagement.Models.CarManagementContext”启用迁移,请使用 Enable-Migrations -ContextTypeName CarManagement.Models.CarManagementContext。要为“CarManagement.Models.ApplicationDbContext”启用迁移,请使用 Enable-Migrations -ContextTypeName CarManagement.Models.ApplicationDbContext。 PM> Enable-Migrations -ContextTypeName eManager CarManagement.Models.CarManagementContext。 Enable-Migrations : 找不到接受........的位置参数。 是的,这并没有真正的帮助。无论如何,从中删除“eManager”。 对不起,我试着截图,也许你会更清楚,你说的eManager是什么意思?我怎样才能删除它? 您正在使用命令行Enable-Migrations -ContextTypeName eManager CarManagement.Models.CarManagementContext。从中删除“eManager”。我不知道它来自哪里,但你已经输入了。 【参考方案1】:

我在尝试使用 Add-Migration 添加迁移时遇到了同样的错误。

问题是,因为我有不止一个DBContext,我必须指定使用哪一个。我们可以将“-Context”参数用于PowerShell 命令,也可以将“--context”参数用于dotnet 命令。

我在命令中使用--context 而不是-Context,因为我在包管理器控制台中运行命令。

Add-Migration "AddNameColumnFavorites" --context LearnraumDatabaseCon

要解决这个问题,我必须像前面那样更改命令。

Add-Migration -Context LearnraumDatabaseContext "AddNameColumnFavorites" 

希望对你有帮助。

【讨论】:

【参考方案2】:

您在命令末尾键入一个点。试试吧:

Enable-Migrations -ContextTypeName CarManagement.Models.ApplicationDbContext

【讨论】:

以上是关于启用迁移在 ASP MVC 5 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

远程验证在 ASP.NET MVC 5 中不起作用

下拉列表的 jQuery 在布局 ASP.NET MVC 5 中不起作用

使用 System.IdentityModel.Tokens.Jwt 从 1.1 迁移到 2.0 后,JWTAuthentication 在 asp.net core 2.0 中不起作用 - 5.1.

客户端验证在带有 Bootstrap 的 ASP.NET MVC5 中不起作用

javascript的“更改”函数在asp.net mvc中不起作用

为啥 jQuery 验证函数在 ASP.NET MVC Core 应用程序中不起作用?