# ADO.NET Entity Framework

ADO.NET Entity Framework es un framework ORM para la plataforma Microsoft .NET.

## Información general

Es un conjunto de API de acceso a datos para el Microsoft .NET Framework, apuntando a la versión de ADO.NET que se incluye con el .NET Framework 3.5. Fue lanzado como actualización separada junto con el Service Pack 1 para el .NET Framework, después del lanzamiento de tanto el .NET Framework 3.5 y el Visual Studio 2008. Una nueva versión del Entity Framework (v 4.0) será liberada junto al Visual Studio 2010 y el .NET Framework 4.0.
Una entidad del Entity Framework es un objeto que tiene una clave representando la clave primaria de una entidad lógica de datastore. Un modelo conceptual Entity Data Model (modelo Entidad-Relación) es mapeado a un modelo de esquema de datastore. Usando el Entity Data Model, el Framework permite que los datos sean tratados como entidades independientemente de sus representaciones del datastore subyacente.
El Entity SQL es un lenguaje similar al SQL para consultar el Entity Data Model (en vez del datastore subyacente). Similarmente, las extensiones del Linq, Linq-to-Entities, proporcionan consultas tipeadas en el Entity Data Model. Las consultas Entity SQL y Linq-to-Entities son convertidas internamente en un Canonical Query Tree que entonces es convertido en una consulta comprensible al datastore subyacente (ej. en SQL en el caso de una base de datos relacional). Las entidades pueden utilizar sus relaciones, y sus cambios enviados de regreso al datastore.

### Historia

La primera versión de Entity Framework (EFv1) fue incluida con .NET Framework 3.5 Service Pack 1 y Visual Studio 2008 Service Pack 1, realizada el 11 de agosto de 2008. Esta versión ha sido ampliamente criticada.
La segunda versión de Entity Framework, llamada Entity Framework 4.0 (EFv4), fue realizada como parte de .NET 4.0 el 12 de abril de 2010 y se han abordado muchas de las críticas hechas a la versión 1.
Una tercera versión de Entity Framework, versión 4.1, se publicó el 12 de abril de 2011, con el apoyo de Code First.
Una actualización de la versión 4.1 el nombre de Entity Framework 4.1 Update 1, se publicó el 25 de julio de 2011. Se incluye correcciones de errores y nuevos tipos soportados.
La versión 4.3.1 fue lanzada el 29 de febrero de 2012. Hay un par de actualizaciones, como es el soporte para la migración.
La versión 5.0.0, posee las siguientes características:
Nuevos tipos de datos (Tipos enumerados (Enum), Tipos de datos espaciales, expuestos mediante los tipos DBGeography y DbGeometry).
Posibilidad de trabajar con funciones que devuelven datos tabulares. El resultado es similar a la llamada a un procedimiento almacenado, con la diferencia de que podemos utilizar estas funciones en consultas LINQ.
Todas las consultas LINQ se compilan y cachean de forma automática. Con ello se obtiene un mejor rendimiento en llamadas recurrentes a las consultas.
Soporte a múltiples diagramas para un mismo modelo de datos. Se podrán visualizar partes del modelo completo en diagramas más pequeños, con lo que se mejora la lectura y exploración del modelo.
Mejoras generales en el rendimiento de EF respecto a versiones anteriores.
Posibilidad de utilizar procedimientos almacenados que devuelven múltiples conjuntos de resultados. Cada conjunto de resultados del procedimiento será mapeando un tipo complejo propio.
Actualmente, hay dos versiones más recientes de Entity Framework: EF 6 y EF Core.