Overview
The Entity Framework provides three separate approaches to work with data models and each one has its own pros and cons.

Possible Approaches

Model First

Code First

Database First

Model First vs Code First vs Database First
Model First Code First Database First
Define the model and go with the workflow to generate a database script and T4 template to generate POCO entities Create POCO classes and then create the database from the POCO classes The code defines the database mappings and EF handles the creation of the database with its relations The EDM wizard creates entities, relationships, and inheritance hierarchies. After modification of the mapping, the POCO class entities are created.
For additional features in POCO entities, either T4 modify a template or use partial classes For additional features in POCO entities you must either T4 modify a template or use partial classes.
Code is automatically generated Full control over the code, no auto-generated code The code is automatically generated.
This approach is adopted by the architect and solution lead developers This approach is adopted by developers who follow the path of Domain-Driven Design (DDD) principles Recommended if the DB is designed by DBAs, developed separately or the DB already exists
Manual changes to the database will be most probably lost because the model defines the database Manual changes to the database will be most probably lost because your code defines the database Manual changes to the database are possible because the database defines the domain model. The model can be updated from the modified database.
Choose Best Suitable Approach
best approach
References
  1. Entityframeworktutorial
  2. DotnetTricks