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...