【问题标题】:'Migrations' does not exist in the namespace 'Microsoft.EntityFrameworkCore'命名空间“Microsoft.EntityFrameworkCore”中不存在“迁移”
【发布时间】:2018-09-05 18:20:56
【问题描述】:

我正在做一个 ASP.NET Core 项目。 我已经安装了Microsoft.EntityFrameworkCoreMicrosoft.EntityFrameworkCore.Tools NuGet 包。

我运行了Add-Migration InitialCreate 命令, 其中创建了Migrations 文件夹和20180905180349_InitialCreate.cs 文件。

但它说

类型或命名空间名称“迁移”不存在于 命名空间“Microsoft.EntityFrameworkCore”(您是否缺少程序集 参考?)

这个错误的原因是什么。我需要安装任何其他软件包吗?

【问题讨论】:

  • 您在项目中添加了引用吗? msdn.microsoft.com/en-us/library/wkze6zky.aspx
  • 向您的项目添加对 Microsoft.AspNetCore.All 的引用。这将超出您的需要,但将包括 EntityFramework Core。
  • @DCCoder 我已将<PackageReference Include="Microsoft.AspNetCore.All" /> 包含在我的 .csproj 文件中。它似乎解决了这个问题。但它会在我的项目中添加不必要的包吗?
  • @B45i 它将向您的项目添加一些不必要的包,但根据您的需要,我高度怀疑它会对您产生负面影响。

标签: c# asp.net asp.net-core


【解决方案1】:

好的,我将向您展示 EF Core + 迁移所需的最少设置:

您将需要安装 Microsoft.EntityFramework.Core,但最好先为您将使用的数据库安装 EF Core 提供程序,而不是该软件包。然后,该 EF Core 提供程序将引入所有必需的依赖项(包括 Microsoft.EntityFramework.Core)。

因此(例如)对于 SQLServer db,我将在包管理器控制台中安装:

  1. 安装包 Microsoft.EntityFrameworkCore.SqlServer

  2. Install-Package Microsoft.EntityFrameworkCore.Tools(用于 powershell 命令)

  3. Install-Package Microsoft.EntityFrameworkCore.Design(包含迁移引擎 - 重要请注意此包必须在可执行项目中)

就是这样。

【讨论】:

  • 你会认为微软会将它与 EntityFramwork.core 包捆绑在一起
  • 我也必须添加 Microsoft.EntityFrameworkCore.Relational。
【解决方案2】:

我遇到了类似的问题,发现我还没有安装Microsoft.EntityFrameworkCore.SqlServer。最初,我只安装了Microsoft.EntityFrameworkCoreMicrosoft.EntityFrameworkCore.Tools

安装Microsoft.EntityFrameworkCore.SqlServer后问题得到解决

【讨论】:

    猜你喜欢
    • 2017-11-23
    • 2016-03-14
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 2019-06-26
    • 1970-01-01
    相关资源
    最近更新 更多