De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

Entity Framework ( EF ) es un marco de trabajo de mapeo relacional de objetos (ORM) de código abierto [3] para ADO.NET . Originalmente se envió como parte integral de .NET Framework . A partir de la versión 6 de Entity Framework, se entregó por separado de .NET Framework. [ cita requerida ]

Resumen [ editar ]

Entity Framework es un conjunto de tecnologías en ADO.NET que admite el desarrollo de aplicaciones de software orientadas a datos. Los arquitectos y desarrolladores de aplicaciones orientadas a datos normalmente se han enfrentado a la necesidad de lograr dos objetivos muy diferentes. Deben modelar las entidades, las relaciones y la lógica de los problemas comerciales que están resolviendo, y también deben trabajar con los motores de datos utilizados para almacenar y recuperar los datos. Los datos pueden abarcar varios sistemas de almacenamiento, cada uno con sus propios protocolos; incluso las aplicaciones que funcionan con un único sistema de almacenamiento deben equilibrar los requisitos del sistema de almacenamiento con los requisitos de escribir código de aplicación eficiente y fácil de mantener. Este problema se conoce generalmente como " desajuste de impedancia relacional de objeto ".[ cita requerida ]

Se han desarrollado muchas herramientas de mapeo relacional de objetos (ORM) (también conocidas como "administradores relacionales de objetos") para permitir a los desarrolladores trabajar con datos en forma de objetos y propiedades específicos del dominio, como clientes y direcciones de clientes, sin tener que preocuparse ellos mismos con las tablas y columnas de la base de datos subyacente donde se almacenan estos datos. Con un ORM, los desarrolladores pueden trabajar a un nivel más alto de abstracción cuando manejan datos y pueden crear y mantener aplicaciones orientadas a datos con menos código que en las aplicaciones tradicionales. Entity Framework es la solución ORM que se promueve actualmente para su uso dentro de la pila de desarrollo de Microsoft. [4]

Historia [ editar ]

La primera versión de Entity Framework (EFv1) se incluyó con .NET Framework 3.5 Service Pack 1 y Visual Studio 2008 Service Pack 1, lanzados el 11 de agosto de 2008 (hace 12 años) . Esta versión fue ampliamente criticada, incluso atrayendo un 'voto de censura' firmado por al menos mil desarrolladores. [5] ( 2008-08-11 )

La segunda versión de Entity Framework, llamada Entity Framework 4.0 (EFv4), fue lanzada como parte de .NET 4.0 el 12 de abril de 2010 y abordó muchas de las críticas hechas a la versión 1. [6]

Una tercera versión de Entity Framework, la versión 4.1, fue lanzada el 12 de abril de 2011, con soporte para Code First.

Una actualización de la versión 4.1, llamada Entity Framework 4.1 Update 1, fue lanzada el 25 de julio de 2011. Incluye correcciones de errores y nuevos tipos compatibles.

La versión 4.3.1 fue lanzada el 29 de febrero de 2012. [7] Hubo algunas actualizaciones, como soporte para la migración.

La versión 5.0.0 se lanzó el 11 de agosto de 2012 [8] y está dirigida a .NET framework 4.5. Además, esta versión está disponible para .Net framework 4, pero sin ventajas de tiempo de ejecución sobre la versión 4.

La versión 6.0 fue lanzada el 17 de octubre de 2013 [9] y ahora es un proyecto de código abierto con licencia Apache License v2. Al igual que ASP.NET MVC , su código fuente está alojado en GitHub usando Git. [10] Esta versión tiene una serie de mejoras para la compatibilidad con el código primero . [11]

Luego, Microsoft decidió modernizar, componentes y llevar .NET multiplataforma a Linux, OSX y otros lugares, lo que significa que la próxima versión de Entity Framework sería una reescritura completa. [12] El 27 de junio de 2016, se lanzó como Entity Framework Core 1.0, junto con ASP.NET Core 1.0 y .NET Core 1.0. [13] Originalmente se llamaba Entity Framework 7, pero se le cambió el nombre para resaltar que era una reescritura completa en lugar de una actualización incremental y no reemplaza a EF6. [14]

Entity Framework Core 1.0 tiene licencia de Apache License v2 y se está construyendo completamente al aire libre en GitHub . Si bien Entity Framework Core 1.0 comparte algunas similitudes conceptuales con versiones anteriores de Entity Framework, es una base de código completamente nueva diseñada para ser más eficiente, potente, flexible y extensible, se ejecutará en Windows, Linux y OSX, y admitirá una nueva gama. de almacenes de datos relacionales y NOSQL. [12]

Entity Framework Core 2.0 se lanzó el 14 de agosto de 2017 (hace 3 años) junto con Visual Studio 2017 15.3 y ASP.NET Core 2.0 [15] ( 14 de agosto de 2017 )

Entity Framework Core 3.0 se lanzó el 23 de septiembre de 2019 (hace 19 meses) junto con Visual Studio 2019 16.3 y ASP.NET Core 3.0, [16] ( 23 de septiembre de 2019 )

Entity Framework Core 3.1 (EF Core 3.1) se lanzó formalmente para uso en producción el 3 de diciembre de 2019 (hace 17 meses) y será la versión compatible a largo plazo preferida hasta al menos el 3 de diciembre de 2022. [17] [18] ( 03/12/2019 )

El Entity Framework Core 5.0.2 (EF Core 5) más reciente se lanzó para uso en producción el 12 de enero de 2021 (hace 4 meses) . [19] [20] ( 01/12/2021 )

Arquitectura [ editar ]

Pila de ADO.NET Entity Framework.

La arquitectura de ADO.NET Entity Framework, de abajo hacia arriba, consiste en lo siguiente: [ cita requerida ]

  • Proveedores específicos de fuentes de datos , que abstraen las interfaces ADO.NET para conectarse a la base de datos cuando programan contra el esquema conceptual.
  • Proveedor de mapas , un proveedor específico de la base de datos que traduce el árbol de comandos de Entity SQL en una consulta en el sabor SQL nativo de la base de datos. Incluye el puente específico de la tienda , que es el componente responsable de traducir el árbol de comandos genérico en un árbol de comandos específico de la tienda.
  • Analizador de EDM y mapeo de vistas , que toma la especificación SDL del modelo de datos y cómo se mapea en el modelo relacional subyacente y permite la programación contra el modelo conceptual. A partir del esquema relacional, crea vistas de los datos correspondientes al modelo conceptual. Agrega información de múltiples tablas para agregarlas en una entidad, y divide una actualización de una entidad en múltiples actualizaciones de cualquier tabla que contribuya a esa entidad.
  • La canalización de consultas y actualizaciones , procesa las consultas, filtra y actualiza las solicitudes para convertirlas en árboles de comandos canónicos que luego el proveedor de mapas convierte en consultas específicas de la tienda.
  • Servicios de metadatos , que manejan todos los metadatos relacionados con entidades, relaciones y mapeos.
  • Transacciones , para integrarse con las capacidades transaccionales de la tienda subyacente. Si la tienda subyacente no admite transacciones, la compatibilidad debe implementarse en esta capa.
  • API de capa conceptual , el tiempo de ejecución que expone el modelo de programación para codificar contra el esquema conceptual. Sigue el patrón ADO.NET de usar objetos Connection para hacer referencia al proveedor de mapas, usar objetos Command para enviar la consulta y devolver EntityResultSets o EntitySets que contienen el resultado.
  • Componentes desconectados , que almacenan en caché localmente conjuntos de datos y conjuntos de entidades para usar ADO.NET Entity Framework en un entorno ocasionalmente conectado.
  • Base de datos integrada : ADO.NET Entity Framework incluye una base de datos integrada liviana para el almacenamiento en caché del lado del cliente y la consulta de datos relacionales.
  • Las herramientas de diseño , como Mapping Designer, también se incluyen con ADO.NET Entity Framework, que simplifica el trabajo de mapear un esquema conceptual al esquema relacional y especificar qué propiedades de un tipo de entidad corresponden a qué tabla en la base de datos.
  • Capa de programación , que expone el EDM como construcciones de programación que pueden ser consumidas por los lenguajes de programación.
    • Los servicios de objetos generan automáticamente código para clases CLR que exponen las mismas propiedades que una entidad, lo que permite la creación de instancias de entidades como objetos .NET.
    • Servicios web , que exponen entidades como servicios web.
  • Servicios de alto nivel , como servicios de informes que funcionan en entidades en lugar de datos relacionales.

Modelo de datos de entidad [ editar ]

El modelo de datos Entidad ( EDM ) especifica el modelo conceptual (CSDL) de los datos, utilizando una técnica de modelado que su vez es llamado modelo de entidad de datos, una versión ampliada del modelo de entidad-relación . [21] El modelo de datos describe principalmente las entidades y las asociaciones en las que participan. El esquema EDM se expresa en el lenguaje de definición de esquemas (SDL), que es una aplicación de XML (lenguaje de marcado extendido). Además, también se debe especificar el mapeo (MSL) de los elementos del esquema conceptual (CSDL) al esquema de almacenamiento (SSDL). La especificación de mapeo también se expresa en XML. [22]

Visual Studio también proporciona Entity Designer para la creación visual del EDM y la especificación de mapeo. La salida de la herramienta es el archivo XML (* .edmx) que especifica el esquema y la asignación. El archivo Edmx contiene artefactos de metadatos EF (contenido CSDL / MSL / SSDL). Estos tres archivos (csdl, msl, ssdl) también se pueden crear o editar a mano. [ cita requerida ]

Mapeo [ editar ]

Entity Data Model Wizard [23] en Visual Studio genera inicialmente un mapeo uno a uno (1: 1) entre el esquema de la base de datos y el esquema conceptual en la mayoría de los casos. En el esquema relacional, los elementos se componen de las tablas, con las claves primaria y externa pegando las tablas relacionadas. Por el contrario, los tipos de entidad definen el esquema conceptual de los datos. [ cita requerida ]

Los tipos de entidad son una agregación de varios campos escritos (cada campo se asigna a una determinada columna de la base de datos) y pueden contener información de varias tablas físicas. Los tipos de entidad se pueden relacionar entre sí, independientemente de las relaciones en el esquema físico. Las entidades relacionadas también se exponen de manera similar, a través de un campo cuyo nombre denota la relación en la que están participando y accediendo que, en lugar de recuperar el valor de alguna columna en la base de datos, atraviesa la relación y devuelve la entidad (o una colección de entidades) con que está relacionado. [ cita requerida ]

Los tipos de entidad forman la clase de objetos a los que se ajustan las entidades, siendo las entidades instancias de los tipos de entidad. Las entidades representan objetos individuales que forman parte del problema que está resolviendo la aplicación y están indexados por una clave. Por ejemplo, convirtiendo el esquema físico descrito anteriormente, tendremos dos tipos de entidad:

  • CustomerEntity , que contiene el nombre del cliente de la tabla Clientes y la dirección del cliente de la tabla Contactos .
  • OrderEntity , que encapsula los pedidos de un determinado cliente, recuperándolos de la tabla Pedidos .

El esquema lógico y su mapeo con el esquema físico se representa como un modelo de datos de entidad (EDM), especificado como un archivo XML. ADO.NET Entity Framework usa EDM para realizar realmente la asignación, lo que permite que la aplicación funcione con las entidades, mientras que internamente abstrae el uso de construcciones ADO.NET como DataSet y RecordSet . ADO.NET Entity Framework realiza las unionesnecesario tener información de referencia de entidad de varias tablas, o cuando se atraviesa una relación. Cuando se actualiza una entidad, rastrea de qué tabla proviene la información y emite declaraciones de actualización SQL para actualizar las tablas en las que se han actualizado algunos datos. ADO.NET Entity Framework usa eSQL, un derivado de SQL, para realizar consultas, operaciones de teoría de conjuntos y actualizaciones sobre entidades y sus relaciones. Las consultas en eSQL, si es necesario, se traducen a la versión SQL nativa de la base de datos subyacente. [ cita requerida ]

Los tipos de entidad y los conjuntos de entidades simplemente forman el esquema lógico de EDM y se pueden exponer como cualquier cosa. ADO.NET Entity Framework incluye Object Service que presenta estas entidades como Objetos con los elementos y relaciones expuestos como propiedades. Por lo tanto, los objetos de entidad son solo el front-end de las instancias de los tipos de entidad de EDM, lo que permite que los lenguajes orientados a objetos accedan y utilicen. De manera similar, se pueden crear otros front-end, que exponen las entidades a través de servicios web (por ejemplo, WCF Data Services ) o XML que se usa cuando las entidades se serializan para almacenamiento persistente o transferencia por cable. [24]

Entidades [ editar ]

Las entidades ** son instancias de EntityType s; representan las instancias individuales de los objetos (como clientes , pedidos ) a los que pertenece la información. La identidad de una entidad está definida por el tipo de entidad del que es una instancia; en ese sentido, un tipo de entidad define la clase a la que pertenece una entidad y también define qué propiedades tendrá una entidad. Las propiedades describen algún aspecto de la entidad dándole un nombre y un tipo. Las propiedades de un tipo de entidad en ADO.NET Entity Framework están completamente escritas y son totalmente compatibles con el sistema de tipos utilizado en un sistema DBMS, así como con el Common Type System de .NET Framework. Una propiedad puede ser SimpleType o ComplexType, y también puede tener varios valores. Todos los EntityType pertenecen a algún espacio de nombres y tienen una propiedad EntityKey que identifica de forma única cada instancia del tipo de entidad. Los diferentes tipos de propiedad se distinguen de la siguiente manera: [ cita requerida ]

  • SimpleType , corresponde a tipos de datos primitivos como números enteros , caracteres y coma flotante . [25]
  • ComplexType , es un agregado de múltiples propiedades de tipo SimpleType o ComplexType . A diferencia de EntityType s, sin embargo, complexTypes pueden no tener un EntityKey . En Entity Framework v1, ComplexTypes no se puede heredar. [26]

Todas las instancias de entidad están alojadas en EntityContainers, que son contenedores por proyecto para entidades. Cada proyecto tiene uno o más EntityContainers con nombre, que pueden hacer referencia a entidades en varios espacios de nombres y tipos de entidad. Se pueden almacenar varias instancias de un tipo de entidad en colecciones llamadas EntitySets. Un tipo de entidad puede tener varios EntitySets. [ cita requerida ]

Tipos primitivos EDM (tipos simples): [25] [27]

Relaciones [ editar ]

Dos tipos de entidad cualesquiera pueden estar relacionados, ya sea por una relación de asociación o una relación de contención . Por ejemplo, un envío que se factura a un cliente es una asociación, mientras que un pedido contiene detalles del pedido es una relación de contención. También se puede utilizar una relación de contención para modelar la herencia entre entidades. La relación entre dos tipos de entidad se especifica mediante un Tipo de relación , cuyas instancias, llamadas Relaciones , relacionan instancias de entidad. En versiones futuras , es posible que se introduzcan otros tipos de relaciones, como Composición o Identificación . [ cita requerida ]

Los tipos de relación se caracterizan por su grado (aridad) o el recuento de tipos de entidad que relacionan y su multiplicidad. Sin embargo, en la versión inicial de ADO.NET Entity Framework, las relaciones se limitan a una relación bidireccional binaria (de grado dos). La multiplicidad define cuántas instancias de entidad se pueden relacionar juntas. Según la multiplicidad, las relaciones pueden ser de uno a uno, de uno a muchos o de muchos a muchos. Las relaciones entre entidades se nombran; el nombre se llama Rol. Define el propósito de la relación. [ cita requerida ]

Un tipo de relación también puede tener una Operación o Acción asociada, lo que permite que se realice alguna acción en una entidad en caso de que se realice una acción en una entidad relacionada. Se puede especificar una relación para realizar una Acción cuando se realiza alguna Operación en una entidad relacionada. Por ejemplo, al eliminar una entidad que forma parte de una relación (la operación OnDelete ) las acciones que se pueden tomar son: [28]

  • Cascade , que indica que se elimine la instancia de relación y todas las instancias de entidad asociadas.
  • Ninguno .

Para las relaciones de asociación, que pueden tener una semántica diferente en ambos extremos, se pueden especificar acciones diferentes para cada extremo. [ cita requerida ]

Lenguaje de definición de esquema [ editar ]

ADO.NET Entity Framework utiliza un lenguaje de definición de datos basado en XML llamado lenguaje de definición de esquema (SDL) para definir el esquema de EDM. El SDL define SimpleTypes similar a los tipos primitivos CTS , incluyendo String , Int32 , Double , Decimal , Guid y DateTime , entre otros. Una enumeración, que define un mapa de valores y nombres primitivos, también se considera un tipo simple. Las enumeraciones solo se admiten a partir de la versión 5.0 del marco. Los ComplexTypes se crean a partir de una agregación de otros tipos. Una colección de propiedades de estos tipos define un tipo de entidad. Esta definición se puede escribir en gramática EBNF como: [ cita requerida ]

 EntityType :: =  ENTITYTYPE entityTypeName [ BASE entityTypeName ]  [ ABSTRACT true | falso ]  CLAVE propertyName [,  propertyName ] *  {( propertyName PropertyType [ PropertyFacet ] * )  + }  PropertyType :: =  (( PrimitiveType [ PrimitiveTypeFacets ] * )  |  ( complexTypeName )  |  RowType  PropertyFacet :: =  (  [NULLABLE verdadero |  falso ]  |  [ VALOR POR DEFECTO ]  |  [ MULTIPLICIDAD [  1 | * ]  ]  )  PropertyTypeFacet :: =  MAXLENGTH |  PRECISIÓN |  ESCALA |  UNICODE |  LONGITUD FIJA |  COLLATION  |  DATETIMEKIND |  PRESERVESECONDS  PrimitiveType :: =  BINARY |  STRING |  BOOLEAN  |  INDIVIDUAL |  DOBLE | DECIMAL |  GUID  |  BYTE |  SBYTE |  INT16 |  INT32 |  INT64  |  DATETIME |  DATETIMEOFFSET |  TIEMPO )

Las facetas se utilizan para describir los metadatos de una propiedad, como si es anulable o tiene un valor predeterminado, como también la cardinalidad de la propiedad, es decir, si la propiedad tiene un valor único o múltiples. Una multiplicidad de "1" denota una sola propiedad valorada; un "*" significa que es una propiedad de varios valores. A modo de ejemplo, una entidad se puede denotar en SDL como: [29]

<ComplexType  Name = "Addr" >  <Property  Name = "Street"  Type = "String"  Nullable = "false"  />  <Property  Name = "City"  Type = "String"  Nullable = "false"  />  <Property  Name = "Country"  Type = "String"  Nullable = "false"  />  <Property  Name = "PostalCode"  Type = "Int32"  /> </ComplexType> <EntityType  Name = "Cliente " >  <Key>  <PropertyRef  Name = " Correo electrónico " />  </Key>  <Property  Name = "Name"  Type = "String"  />  <Property  Name = "Email"  Type = "String"  Nullable = "false"  />  <Property  Name = "Address"  Type = "Addr "  /> </EntityType>

Un tipo de relación se define como la especificación de los puntos finales y sus multiplicidades. Por ejemplo, una relación de uno a varios entre el cliente y los pedidos se puede definir como

<Association  Name = "CustomerAndOrders" >  <End  Type = "Customer"  Multiplicity = "1"  />  <End  Type = "Orders"  Multiplicity = "*" >  <OnDelete  Action = "Cascade"  />  </End> </ Asociación>

Consultando datos [ editar ]

Entidad SQL [ editar ]

ADO.NET Entity Framework utiliza una variante del lenguaje de consulta estructurado , denominada Entity SQL , que tiene como objetivo escribir consultas declarativas y actualizaciones sobre entidades y relaciones entre entidades, a nivel conceptual. Se diferencia de SQL en que no tiene construcciones explícitas para las combinaciones porque el EDM está diseñado para abstraer los datos de particiones en las tablas. [ cita requerida ]

Las clases de EntityClient facilitan la consulta contra el modelo conceptual , que acepta una consulta de Entity SQL. La canalización de consultas analiza la consulta de Entity SQL en un árbol de comandos, separando la consulta en varias tablas, que se entrega al proveedor de EntityClient. Al igual que los proveedores de datos ADO.NET, un proveedor EntityClient también se inicializa mediante un objeto Connection , que además de los parámetros habituales del almacén de datos y la información de autenticación, requiere el esquema SDL y la información de mapeo. El proveedor EntityClient, a su vez, convierte el árbol de comandos de Entity SQL en una consulta SQL en el sabor nativo de la base de datos. Luego, la ejecución de la consulta devuelve un ResultSet de Entity SQL, que no se limita a una estructura tabular, a diferencia de los ResultSets de ADO.NET. [cita requerida ]

Entity SQL mejora SQL al agregar soporte intrínseco para: [ cita requerida ]

  • Tipos , ya que las entidades ADO.NET están completamente escritas.
  • EntitySets , que se tratan como colecciones de entidades.
  • Capacidad de composición , que elimina las restricciones sobre dónde se pueden utilizar las subconsultas.

Funciones canónicas de Entity SQL [ editar ]

Las funciones canónicas son compatibles con todos los proveedores de datos compatibles con Entity Framework. Se pueden utilizar en una consulta de Entity SQL. Además, la mayoría de los métodos de extensión en LINQ to Entities se traducen a funciones canónicas. Son independientes de cualquier base de datos específica. Cuando el proveedor de datos ADO.NET recibe una función, la traduce a la instrucción SQL deseada. [30]

Pero no todos los DBMS tienen una funcionalidad equivalente y un conjunto de funciones integradas estándar. También existen diferencias en la precisión de los cálculos. Por lo tanto, no todas las funciones canónicas son compatibles con todas las bases de datos y no todas las funciones canónicas devuelven los mismos resultados. [ cita requerida ]

LINQ para entidades [ editar ]

El proveedor LINQ to Entities permite que LINQ se utilice para consultar varias fuentes de datos RDBMS . Hay disponibles varios proveedores específicos de servidores de bases de datos compatibles con Entity Framework. [ cita requerida ]

SQL nativo [ editar ]

En Entity Framework v4 se agregaron los nuevos métodos ExecuteStoreQuery () y ExecuteStoreCommand () a la clase ObjectContext. [ cita requerida ]

Visualizadores [ editar ]

Visual Studio tiene una función llamada Visualizador. Una consulta LINQ escrita en Visual Studio se puede ver como SQL nativo mediante un visualizador durante la sesión de depuración. Un visualizador para LINQ to Entities (Object Query) dirigido a todos los RDBMS está disponible en "VisualStudioGallery". [31]

Entity Framework Profiler [ editar ]

Entity Framework Profiler es una herramienta de mapeo relacional de objetos (ORM) que solucionará problemas de rendimiento en una aplicación ASP.NET mediante Entity Framework. Busca ineficiencias comunes en las consultas de bases de datos, como el problema SELECT N + 1. [32]

Ver también [ editar ]

  • Lista de software de mapeo relacional de objetos
  • LINQ a SQL
  • API de persistencia de .NET (NPA)

Referencias [ editar ]

  1. ^ "Lanzamientos · dotnet / ef6 · GitHub" .
  2. ^ "Lanzamientos · dotnet / efcore · GitHub" .
  3. ^ Krill, Paul (20 de julio de 2012). "Entity Framework de fuentes abiertas de Microsoft" . InfoWorld . Consultado el 24 de julio de 2012 .
  4. ^ https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/ef/overview
  5. ^ Voto de no confianza de ADO .NET Entity Framework
  6. ^ "Actualización de Entity Framework en .NET 4 y Visual Studio 2010" . Blog del equipo ADO.NET. 11 de mayo de 2009. Archivado desde el original el 20 de enero de 2010 . Consultado el 1 de noviembre de 2011 .
  7. ^ "EF4.3.1 y EF5 Beta 1 disponibles en NuGet" . Blog del equipo ADO.NET. 29 de febrero de 2012. Archivado desde el original el 25 de marzo de 2012 . Consultado el 27 de marzo de 2012 .
  8. ^ "EF5 disponible en CodePlex" . 11 de agosto de 2012.
  9. ^ "EF6 RTM disponible" . 17 de octubre de 2013. Archivado desde el original el 30 de marzo de 2014.
  10. ^ "Entity Framework - Inicio" . 14 de septiembre de 2016.
  11. ^ "Historial de versiones de EF" .
  12. ^ a b "EF7 - Nuevas plataformas, nuevos almacenes de datos" . 19 de mayo de 2014. Archivado desde el original el 29 de septiembre de 2015.
  13. ^ "Entity Framework Core 1.0.0 disponible" . 27 de junio de 2016.
  14. ^ Hanselman, Scott. "ASP.NET 5 ha muerto - Presentamos ASP.NET Core 1.0 y .NET Core 1.0 - Scott Hanselman" . www.hanselman.com . Consultado el 11 de julio de 2016 .
  15. ^ "Anuncio de .NET Core 2.0" . Blog de .NET. 14 de agosto de 2017.
  16. ^ "Anuncio de .NET Core 3.0" . Blog de .NET. 23 de septiembre de 2019.
  17. ^ https://docs.microsoft.com/en-us/ef/core/what-is-new/
  18. ^ https://www.nuget.org/packages/Microsoft.EntityFrameworkCore
  19. ^ https://docs.microsoft.com/en-us/ef/core/what-is-new/
  20. ^ https://www.nuget.org/packages/Microsoft.EntityFrameworkCore
  21. ^ "Modelo de datos de entidad" . MSDN, Microsoft. 2 de agosto de 2012 . Consultado el 15 de agosto de 2013 .
  22. ^ CSDL, SSDL y especificaciones MSL , MSDN , archivado desde el original, el 2010-11-08 , recuperados 2010-12-06
  23. ^ Asistente de modelo de datos de entidad , MSDN , consultado el 6 de diciembre de 2010
  24. ^ Kogent Solutions Inc. (2009), Libro negro de ASP.NET 3.5 , Dreamtech Press, ISBN 978-81-7722-831-1
  25. ↑ a b Simple Types (EDM) , MSDN , consultado el 6 de diciembre de 2010
  26. ^ ComplexType Element (CSDL) , MSDN , recuperada 2010-12-06
  27. ^ Tipos de modelos conceptuales , MSDN , consultado el 6 de diciembre de 2010
  28. ^ OnDelete Element (CSDL) , MSDN , recuperada 2010-12-06
  29. ^ Facetas (CSDL) , MSDN , recuperada 2010-12-06
  30. ^ a b Canonical Functions (Entity SQL) , MSDN , consultado el 29 de marzo de 2010
  31. ^ VisualStudioGallery
  32. ^ "Entity Framework Profiler" . hibernatingrhinos.com . Rinocerontes hibernando . Consultado el 12 de mayo de 2021 .

Bibliografía [ editar ]

  • Lee, Craig (14 de junio de 2010), ADO.NET Entity Framework Unleashed (1ª ed.), Sams , p. 600, ISBN 978-0-672-33074-2, archivado desde el original el 1 de octubre de 2012
  • Lerman, Julia (agosto de 2010), Programming Entity Framework (2ª ed.), O'Reilly Media , p. 912, ISBN 978-0-596-80726-9
  • Jennings, Roger (3 de febrero de 2009), Professional ADO.NET 3.5 con LINQ y Entity Framework (1ª ed.), Wrox , p. 672, ISBN 978-0-470-18261-1, archivado desde el original el 10 de octubre de 2012 , consultado el 6 de febrero de 2010
  • Mostarda, Stefano (diciembre de 2010), Entity Framework 4.0 en acción (1ª ed.), Publicaciones Manning , p. 450, ISBN 978-1-935182-18-4

Enlaces externos [ editar ]

  • Entity Framework de ADO.NET (en el Centro de desarrollo de datos)
  • El código fuente de Entity Framework versión 6 alojado en GitHub
  • EntityFramework en GitHub