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 to dotnet, if you run it from the DomainModel project:
dotnet ef --startup-project ..\Web migrations add "Initial version"
Or, from within code, you need to tell Entity Framework which...