2.1: Add Migration and Database
Referencing Entity Framework Core CLI Tool
Now we will add a package to allow us to use Entity Framework Core and run migrations with the CLI.
In your terminal - navigate to EFConnect.Data and run the following commands to update the EFConnect.Data.csproj file:
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet add package Microsoft.EntityFrameworkCore.Tools.DotNetEnsure your updated EFConnect.Data.csproj file roughly matches the following (versions of packages may be different:
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.0" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />
</ItemGroup>Restore your packages:
dotnet restoreNote: you may get strange error messages about a downgraded version:
error NU1605: EFConnect.Data -> Microsoft.EntityFrameworkCore.Tools.DotNet 2.0.2 -> Microsoft.NETCore.App (>= 2.0.6
If that's the case, specify the RuntimeFrameworkVersion to match the error (in this case 2.0.6:
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<RuntimeFrameworkVersion>2.0.6</RuntimeFrameworkVersion>
</PropertyGroup>Verify that the Entity Framework Core CLI tools were installed correctly:
dotnet efYou should get a unicorn some some help information. Feel free to explore that.
_/\__
---==/ \\
___ ___ |. \|\
| __|| __| | ) \\\
| _| | _| \_/ | //|\\
|___||_| / \\\/\\
Entity Framework Core .NET Command Line Tools 2.0.1-rtm-125
Usage: dotnet ef [options] [command]
Options:
--version Show version information
-h|--help Show help information
-v|--verbose Show verbose output.
--no-color Don't colorize output.
--prefix-output Prefix output with level.
Commands:
database Commands to manage the database.
dbcontext Commands to manage DbContext types.
migrations Commands to manage migrations.Running Our First Migration
Let's run our first migration.
In your EFConnect.Data folder, run the following command:
dotnet ef migrations add InitialCreate -s "../EFConnect.API/EFConnect.API.csproj"We added an option (-s) to tell Entity Framework Core the location of our Startup project - since our .Data project is separate from our .API project.
This blog post provided a solution to the above problem. Read it if you would like to understand in-depth.
Creating Our Database
To create our database (or to update the database with a migration in the future) we'll run this command:
dotnet ef database update -s "../EFConnect.API/EFConnect.API.csproj"We won't run it now, but it's good to have this command in your back pocket incase you run into issues.
This removes the latest migration:
dotnet ef migrations remove -s "../EFConnect.API/EFConnect.API.csproj"Last updated