25
votes

I'm doing a ASP.NET Core project. I've installed Microsoft.EntityFrameworkCore and Microsoft.EntityFrameworkCore.Tools NuGet packages.

I ran Add-Migration InitialCreate command, Which created Migrations folder and 20180905180349_InitialCreate.cs file.

But it says

The type or namespace name 'Migrations' does not exist in the namespace 'Microsoft.EntityFrameworkCore' (are you missing an assembly reference?)

What is the cause of this error. Do i need to install any other package ?

2
Did you add a reference in your project? msdn.microsoft.com/en-us/library/wkze6zky.aspxAny Moose
Add a reference to Microsoft.AspNetCore.All to your project. This will be more than you need but will include EntityFramework Core.DCCoder
@DCCoder I've included <PackageReference Include="Microsoft.AspNetCore.All" /> in my .csproj file. It seems to fix the issue. But does it add unnecessary packages to my project ?B45i
@B45i It will be adding a few unnecessary packages to your project but depending on your needs I highly doubt it will negatively effect you.DCCoder

2 Answers

54
votes

Ok, I will show you the minimal setup required for EF Core + Migrations:

You will need to install Microsoft.EntityFramework.Core, but it is better that instead of that package you first install a EF Core provider for the database you will use. Then that EF Core provider will pull in all the required dependencies ( including Microsoft.EntityFramework.Core ) .

So (for example) for SQLServer db, in the Package Manager Console I will install:

  1. Install-Package Microsoft.EntityFrameworkCore.SqlServer

  2. Install-Package Microsoft.EntityFrameworkCore.Tools (for powershell commands)

  3. Install-Package Microsoft.EntityFrameworkCore.Design (contains migrations engine - and important note this package has to be inside executable project)

And that's it.

0
votes

I faced a similar issue and found that I haven't installed Microsoft.EntityFrameworkCore.SqlServer. Initially, I have installed only Microsoft.EntityFrameworkCore and Microsoft.EntityFrameworkCore.Tools.

After installing Microsoft.EntityFrameworkCore.SqlServer problem gets resolved