Entity Framework

Microsoft ASP.NET offers a succinct definition of Entity Framework. “Entity Framework (EF) is an object-relational mapper that enables .NET developers to work with relational data using domain-specific objects. It eliminates the need for most of the data-access code that developers usually need to write.”

The Entity Framework is really kind of like a “toolbox” in ADO.NET designed to enable and support the development of data-focused software applications. Developers of data-related apps have had to deal with the need to achieve two quite disparate objectives for some time. The first step is to model the entities, relationships, and logic of the business problems to be solved, and the solutions they devise must also be compatible with the data engines that store and retrieve the data.

With the “tools” provided by the Entity Framework, developers can work directly with data as domain-specific objects with properties, such as customers and customer addresses, but don’t have to worry about the mechanics of structuring the underlying database tables and columns where the data is stored.

This makes it possible for developers to work at a higher level of abstraction when dealing with data, so they can build data-focused apps with less code than in traditional software development. Furthermore, since the Entity Framework is a component of the .NET Framework, all Entity Framework applications can run on any device with  .NET Framework version 3.5 SP1 or later.

The Entity Framework is designed to enable developers to describe the business logic and state of the problem domain which they are modeling with as little as possible “noise” coming from the constraints of the underlying IT representation and the infrastructure.