【问题标题】:Enable-Migrations - Cannot bind argument to parameter 'Path'Enable-Migrations - 无法将参数绑定到参数“路径”
【发布时间】:2020-01-25 08:29:53
【问题描述】:

我是 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

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

我该如何解决这个问题?

【问题讨论】:

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


【解决方案1】:

我在使用 EntityFramework 6.3.0 时遇到此错误,将其降级到 6.2.0 可以解决我的问题。

【讨论】:

  • 哇,非常感谢。降级到 6.2 也为我解决了这个问题!
  • 在我的情况下也需要重新启动;)
  • 我要补充一点,6.4.0 可用并且不需要降级,因为升级(从 6.3.0)解决了我的问题。
  • 天哪!我一直在搞这个这么久,这很尴尬。它在 EF 6.4 中对我来说是坏的,在 EF 6.3 中坏了,在 EF 6.2 中工作。谢谢!
  • 现在似乎微软 EntityFramework Core 是焦点,而不是 EntityFramework。希望解决 EntityFramework 6.4 的问题有意义吗?我不知道该怎么做。
【解决方案2】:

有一个workaround for this bug。只需编辑一个文件并重新启动 Visual Studio。有效!

【讨论】:

    【解决方案3】:

    我有同样的错误,只是将 EF 更新到最新版本(这里是 6.4.0)现在迁移工作正常。

    update-package entityframework
    enable-migrations
    Add-Migration InitialCreate
    

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

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

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

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

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

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

        【讨论】:

        • 我尝试手动添加数据库,但对我来说它仍然产生相同的错误。但感谢您的意见。
        • 也许您可以添加更多细节。例如,您说您已将 Entity Framework 安装到您的项目中,我假设您已在 web.config 或 app.config 文件中添加了适当的连接字符串,您已添加了继承 System.Data.Entity.DbContext 的上下文和有适当的构造函数。
        【解决方案6】:

        如果我的数据库代码在一个单独的类库中,我会得到这个。 为了让命令工作,我必须选择类库作为启动项目。

        所以我做了以下...

        选择数据库上下文存在的项目,右键,选择“设置为启动项目”。

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

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

        运行命令。

        【讨论】:

          【解决方案7】:

          问题是由于没有足够的权限来运行该命令。以管理员模式打开 Visual Studio(以管理员身份运行)并执行命令。

          【讨论】:

            【解决方案8】:

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

            【讨论】:

              【解决方案9】:

              将我的解决方案中的 EntityFramework 包从 6.3.0 更新到 6.4.4 为我解决了这个问题。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2020-02-09
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2021-03-14
                • 1970-01-01
                相关资源
                最近更新 更多