Well, to answer the first question about what is Entity Framework, Entity Framework is an Object Relational Mapper (ORM). It basically generates business objects and entities according to the database tables and provides the mechanism for:
- Performing basic CRUD (Create, Read, Update, Delete) operations.
- Easily managing "1 to 1", "1 to many", and "many to many" relationships.
- Ability to have inheritance relationships between entities.
- We can have all data access logic written in higher level languages.
- The conceptual model can be represented in a better way by using relationships among entities.
- The underlying data store can be replaced without much overhead since all data access logic is present at a higher level.
Entity Frameworks sits between your application and your database and takes care of all the responsibilities of manipulating data on behalf of the developer by leveraging the power of ADO.Net. So that a developer can focus on querying and manipulating domain objects or entities in general. This makes application maintainable and extendable. It also automates standard CRUD operation (Create, Read, Update & Delete) so developer doesn’t need to write it manually.