Enable-Migrations-无法将参数绑定到参数'Path'

时间:2019-09-25 07:38:32

标签: c# visual-studio entity-framework asp.net-web-api

我是ASP.NET的新手,正在尝试使用实体框架设置webAPI c#应用程序。但是,当我尝试在nuget-package-manager控制台上运行Enable-Migrations命令时,出现以下错误:

“由于参数'Path'为空,因此无法将其绑定到参数'

    enable-migrations : Cannot bind argument to parameter 'Path' because it is 
    null.
    At line:1 char:1
    + enable-migrations -ContextTypeName SchoolDBContext
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Enable-Migrations], 
    ParameterBindingValidationException
    + FullyQualifiedErrorId : 
    ParameterArgumentValidationErrorNullNotAllowed,Enable-Migrations

我尝试卸载并重新安装实体框架,但仍然会出现相同的错误。

我该如何解决?

8 个答案:

答案 0 :(得分:10)

使用EntityFramework 6.3.0时出现此错误,将其降级为6.2.0可以解决我的问题。

答案 1 :(得分:3)

有一个workaround for this bug。只需编辑一个文件,然后重新启动Visual Studio。可行!

答案 2 :(得分:1)

只需使用除6.3.0之外的任何EntityFramework版本。就我而言,使用EntityFramework 6.0.0解决了这个问题。

答案 3 :(得分:1)

问题是由于没有足够的特权来运行命令。在管理员模式( 以管理员身份运行) 中打开Visual Studio,然后执行命令。

答案 4 :(得分:0)

您是否尝试过手动添加具有适当名称的数据库以匹配配置文件中的连接字符串?

今天下午我有一个相同的错误。手动添加数据库解决了该问题,随后我设法添加了一个添加了表的迁移。

在此之后,我删除了配置文件和迁移文件(从项目的“迁移”文件夹中),并删除了数据库。随后我运行更新数据库时,得到了更常规的响应:

检查上下文是否针对现有数据库...

为项目MyProject.Domain启用了代码优先迁移

然后我运行了“ add-migration Initial”和“ update-database”。这为我提供了一个新的数据库。都好。非常感谢其他有关基础故事的更新。

答案 5 :(得分:0)

如果我的数据库代码位于单独的类库中,则会得到此信息。 为了使命令生效,我必须选择类库作为启动项目。

所以我做了以下...

选择数据库上下文所在的项目,然后右键单击,选择“设置为启动项目”。

选择默认项目作为正确的项目。

确保您位于文件系统上的项目目录中。

运行命令。

答案 6 :(得分:0)

我有同样的错误,只是将EF更新到最新版本(此处为6.4.0),现在迁移可以正常进行。

update-package entityframework
enable-migrations
Add-Migration InitialCreate

答案 7 :(得分:0)

在卸载 6.1.3 后重新安装 EF 6.4.4 为我解决了这个问题。