Jordan
Jordan

Reputation: 9911

Generating Entity Pocos from Existing Database

Using code-first, is there a way to generate entity classes from an existing database? I get how to use migrations. I get how to update a database with migrations. What I don't know is how to create a model set from an existing database that was created before migrations was a thing. I have a lot of tables.

What is the appropriate work flow here? I would really rather not write these by hand.

NOTE: I CANNOT USE AN EDMX. So do not register this as a duplicate of the thousand questions that say "just create an edmx file."

Upvotes: 0

Views: 43

Answers (1)

Steve Greene
Steve Greene

Reputation: 12304

I'm moving a major legacy project over using Code First to an existing database. https://msdn.microsoft.com/en-us/data/jj200620.aspx. First thing I did was modify the default templates so I minimize the changes needed to namespace, etc. (I move the classes to other project after generating them). https://msdn.microsoft.com/en-us/data/jj593170.aspx Then I reverse engineer in small groups of related tables, create a migration, verify everything in the Up() code matches my database, comment the Up() code out and update the database. You could also add a migration with -IgnoreChanges, but I like to see the code. After a while I roll all the little migrations into a single migration using this technique http://cpratt.co/migrating-production-database-with-entity-framework-code-first/#at_pco=smlwn-1.0&at_si=54ad5c7b61c48943&at_ab=per-12&at_pos=0&at_tot=1.

Some of the referenced links mention EF Power Tools, but I don't believe I needed to install those to reverse engineer (VS 2013, EF 6.1.2). I did need to install this Nuget package for the templates: https://www.nuget.org/packages/EntityFramework.CodeTemplates.CSharp/

Upvotes: 1

Related Questions