When we build database-backed enterprise applications, we generally want to isolate our entity models, the DbContext, and the logic for database initialization and migration to maintain a clean ...
I'm not a big fan of what I call "aggressive code-first," where your table design is derived from your object design. And, to tell you the truth, I'm not sure I have a good reason for my skepticism.