Tel Map

Blog

Entity Framework 7 Scaffold DbContext from Existing Database

In previous to 7 versions of the Entity Framework all Entity Framework related commands could be executed within Visual Studio. Now you have to use the new ASP .NET 5 dnx command instead.

DbContext Model Migration from Entity Framework 6

In order to migrate my model from Entity Framework 6 to Entity Framework 7, I did not want to manually adjust my old DbContext for Entity Framework 7. Instead I used scaffolding from my existing database to create a completely new model. This minimizes the risk of introducing errors in the new model. After I generated the model, I deleted the previous Migration History table in the database. This might not be suitable for everyone, but I wanted to make a clean cut after transitioning to EF 7.

Scaffold DbContext

In order to scaffold a DBContext from an existing database, you first have to set up dnx ef. If you have not done so already, please read the 2 previous blog entries about ASP .NET 5.

To be more specific, the examples in this article were done using Entity Framework 7 RC1. If you execute dnx ef in your ASP .NET project folder, you will get the following output.

dnx ef output:

dnx ef dbcontext output:

dnx ef dbcontext scaffold output:

So in order to scaffold a DbContext from an existing database you simply have to execute the following command.

In my example I am using a Microsoft SQL Server and outputDir as the directory for storing the generated DbContext. In the outputDir you will find one generated class for each table in your database and a newly generated DbContext. If you have additional tables in the database, that you actually do not want to use in your DbContext e.g. if you are using external tools that use the same database, then simply remove the corresponding files and references from DbContext. If you are scaffolding a DbContext from an existing Entity Framework 6 database, you should remove the class generated for the previous Migration History table __MigrationHistory. By the way, the new table for the Migration History is called slightly different i.e. __EFMigrationsHistory.

Summary

This articles demonstrated how to migrate a DbContext from Entity Framework 6 to 7 or how to generate a DbContext from a completely new database. In the next article we will show how to do Code first migrations with Entity Framework 7.

One Reply to “Entity Framework 7 Scaffold DbContext from Existing Database”

Leave a Reply

Your email address will not be published. Required fields are marked *