ENTITY FRAMEWORK is a layer which sits between application and the database. EF is simply an abstraction layer that allows developers to model the domain, and it generates the database access logic for you. It allows you to write your domain objects in POCO classes and use it in application. The tooling support for Entity Framework in Visual Studio is great, but is ultimately just tooling to help with EDMX file creation. The actual framework is the .NET DLLs which act upon the information declared in your EDMX files. Although it is easy to understand and implement. It affects the performance of application most of the time. Secondly, if you are debugging then some time it becomes very difficult as it takes time to load the internal attributes of the objects.
EF has the following Advantage:: reduces the amount code, LINQ for all object queries, one don’t have to write the SQL queries, easy to manage relationship between tables, developers spend lots of time coding the plumbing required to save the data to the data store. EF Reduces this time, hence the developers can spend time actually building the application, developers can work against domain specific objects such as employee and employee address and need not to worry about how and where these data is stored, applications are now easier to maintain as the amount of code is reduced, applications are no longer tied up to a particular data store EF Framework will handle the data storage, one don’t have to write SQL queries EF Will take care of that, the Entity framework is very easy to use,