My recent Data Points column in MSDN Magazine (May 2011) provided an overview of the differences between the three workflows for creating an Entity Framework model:
1) Reverse engineer and existing database into an EDMX model
2) Create an EDMX model in the designer and generate a database from that
3) Forego a physical model and use your domain classes along with Entity Framework Code First.
After listing the big differences and discussing pros & cons of the different workflows, I presented a diagram to encapsulate the decision making.
A few days before the article became public, I received an email from a developer asking about how to create a model when he had pre-existing classes and a pre-existing database. The obvious answer (in my mind) was to use Code First. Otherwise, he would have had to try to work out a model that would match his existing classes.
I immediately realized that I did not include that suggestion in the decision tree in the article, so here is that diagram, updated.
The new decisions are in red.
I know that even after you’ve said that you prefer a visual designer, I’m still recommending that you don’t use it in this case (point back to code first) but believe me, you’ll most likely be happier in that scenario.