C# – Enable Migrations with Context in Separate Assembly

asp.net-mvc-4centity-frameworkentity-framework-migrationsnet

I have one project that I want to run my update-database against but I have my Models and Context in a separate project.

If I run enable-migrations I get this error:
No context type was found in the assembly 'MyProject'.

This is presumably because my Context is in MyProject.MVC.

If I run enable-migrations against MyProject.MVC I have to add an app config file. I don't want to do that as I want to use the code across many projects.

So can I run enable-migrations against MyProject and somehow tell it to look in MyProject.MVC for the Context?

Best Answer

This will only work in EF 6, but there was a release that added the -ContextProjectName parameter to the -enable-migrations command. By using this command you could do the following:

enable-migrations -ContextProjectName MyProject.MVC -StartUpProjectName MyProject.MVC 
-ContextTypeName MyProject.MVC.MyContextFolder.MyContextName -ProjectName MyProject

This will add migrations to your MyProject project using the context in the MyProject.MVC. You need to make sure that the project with the Migrations has a reference to the project with your Context, i.e., MyProject references MyProject.MVC