名称空间"Microsoft.EntityFrameworkCore"中不存在"迁移"

B45*_*45i 16 c# asp.net asp.net-core

我正在做一个ASP.NET核心项目.我已经安装Microsoft.EntityFrameworkCoreMicrosoft.EntityFrameworkCore.Tools的NuGet包.

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

但它说

命名空间"Microsoft.EntityFrameworkCore"中不存在类型或命名空间名称"迁移"(您是否缺少程序集引用?)

导致此错误的原因是什么.我需要安装任何其他包吗?

jur*_*rin 31

好的,我将向您展示EF Core + Migrations所需的最小设置:

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

所以(例如)对于SQLServer db,在Package Manager Console中我将安装:

  1. 安装包Microsoft.EntityFrameworkCore.SqlServer

  2. 安装包Microsoft.EntityFrameworkCore.Tools(用于powershell命令)

  3. 安装包Microsoft.EntityFrameworkCore.Design(包含迁移引擎 - 重要说明此包必须在可执行项目内)

就是这样.

  • 你会认为微软会将它与 EntityFramwork.core 包捆绑在一起 (5认同)
  • 我也必须添加 Microsoft.EntityFrameworkCore.Relational 。 (4认同)
  • 是的,但是那太简单了:) (2认同)

Nir*_*edi 5

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

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