Migrations with contexts in different projects

Problems arise if your context is in a different project than the startup one.

Problem

If you have an entry assembly and an additional project/assembly that contains your DbContext and your model, migrations won't work. This is by design.

For example, you have an assembly called Web and an assembly called DomainModel. The latter contains the DbContext and all the model classes and you are trying to generate a migration from the Web folder using the following:

dotnet ef migrations add "Initial version" 

You could also use a similar one. You will get a "Your target project 'Web' doesn't match your migrations assembly 'DomainModel'" error.

How to solve it…

You either need to pass the --startup-project flag ...

Get Entity Framework Core Cookbook - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.