stringtranslate.com

Marco de entidad

Entity Framework ( EF ) es un marco de mapeo relacional de objetos (ORM) de código abierto [2] para ADO.NET . Originalmente se envió como parte integral de .NET Framework , sin embargo, a partir de la versión 6.0 de Entity Framework se ha enviado por separado de .NET Framework.

Entity Framework 6.4 fue la última versión del marco clásico. Aunque Entity Framework 6 todavía recibe soporte, ya no se desarrolla y solo recibirá correcciones para problemas de seguridad. [3]

En 2016 se introdujo un nuevo marco conocido como Entity Framework Core (EF Core) con características similares, pero no completas. [4] La numeración de versiones de este marco se reinició desde 1.0 y la última versión de EF Core es 8.0. [5]

Descripción general

Entity Framework es un conjunto de tecnologías de ADO.NET que respalda el desarrollo de aplicaciones de software orientadas a datos. Los arquitectos y desarrolladores de aplicaciones orientadas a datos generalmente han tenido que luchar con 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 múltiples sistemas de almacenamiento, cada uno con sus propios protocolos; incluso las aplicaciones que funcionan con un solo sistema de almacenamiento deben equilibrar los requisitos del sistema de almacenamiento con los requisitos de escribir código de aplicación eficiente y mantenible. Este problema generalmente se conoce como " desajuste de impedancia objeto-relacional ". [6]

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 por las tablas y columnas de la base de datos subyacente donde se almacenan estos datos. Con un ORM, los desarrolladores pueden trabajar en un nivel más alto de abstracción cuando tratan con 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 actualmente se promociona para su uso dentro de la pila de desarrollo de Microsoft. [7]

Historia

La primera versión de Entity Framework (EFv1) se incluyó en .NET Framework 3.5 Service Pack 1 y Visual Studio 2008 Service Pack 1, publicados el 11 de agosto de 2008 (hace 16 años) . Esta versión fue ampliamente criticada, llegando incluso a recibir un "voto de censura" firmado por al menos mil desarrolladores. [8] ( 11-08-2008 )

La segunda versión de Entity Framework, denominada Entity Framework 4.0 (EFv4), se lanzó 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. [9]

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

El 25 de julio de 2011 se lanzó una actualización de la versión 4.1, denominada Entity Framework 4.1 Update 1, que incluye correcciones de errores y nuevos tipos admitidos.

La versión 4.3.1 se lanzó el 29 de febrero de 2012. [10] Hubo algunas actualizaciones, como soporte para la migración.

La versión 5.0.0 se lanzó el 11 de agosto de 2012 [11] y está destinada a .NET Framework 4.5. Además, esta versión está disponible para .Net Framework 4, pero sin ninguna ventaja de tiempo de ejecución con respecto a la versión 4.

La versión 6.0 se lanzó el 17 de octubre de 2013 [12] y ahora es un proyecto de código abierto con licencia Apache v2. Al igual que ASP.NET MVC , su código fuente está alojado en GitHub mediante Git. [13] Esta versión tiene una serie de mejoras para la compatibilidad con el código primero. [14]

Microsoft decidió entonces modernizar, componentizar y llevar .NET multiplataforma a Linux, OSX y otros, lo que significa que la próxima versión de Entity Framework sería una reescritura completa. [15] 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. [16] 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 que no reemplaza a EF6. [17]

Entity Framework Core 1.0 tiene licencia Apache License v2 y se creó completamente de forma abierta en GitHub. Si bien Entity Framework Core 1.0 comparte algunas similitudes conceptuales con versiones anteriores de Entity Framework, se trataba de una base de código completamente nueva diseñada para ser más eficiente, potente, flexible y extensible, que se ejecutaba en Windows, Linux y OSX y admitía una nueva gama de almacenes de datos relacionales y NoSQL . [15]

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

Entity Framework Core 3.0 se lanzó el 23 de septiembre de 2019 (hace 5 años) junto con Visual Studio 2019 16.3 y ASP.NET Core 3.0, [19] ( 23/09/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 4 años) y será la versión preferida con soporte a largo plazo hasta al menos el 3 de diciembre de 2022. [20] [21] ( 03-12-2019 )

Entity Framework Core 5.0 (EF Core 5) se lanzó para uso en producción el 9 de noviembre de 2020 (hace 4 años) . [20] [21] Se retiró y dejó de recibir soporte 1,5 años después, el 10 de mayo de 2022. [22] ( 09/11/2020 )

Entity Framework Core 6.0 (EF Core 6) se lanzó el 10 de noviembre de 2021 (hace 3 años) [23] [24] y será la versión preferida con soporte a largo plazo hasta al menos el 12 de noviembre de 2024. [25] ( 10/11/2021 )

Entity Framework Core 7.0 (EF Core 7) se lanzó el 8 de noviembre de 2022 (hace 2 años) [26] [27] y agregó características como columnas JSON y actualizaciones masivas. ( 08/11/2022 )

Entity Framework Core 8.0 (EF Core 8) se lanzó el 14 de noviembre de 2023 (hace 11 meses) [28] [29] y agregó características como objetos de valor que usan tipos complejos y colecciones primitivas. ( 14/11/2023 )

Arquitectura

Pila de Entity Framework ADO.NET.

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

Modelo de datos de entidad

El modelo de datos de entidad ( EDM ) especifica el modelo conceptual (CSDL) de los datos, utilizando una técnica de modelado que se denomina a su vez modelo de datos de entidad, una versión extendida del modelo entidad-relación . [30] 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 esquema (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 del mapeo también se expresa en XML. [31]

Un modelo de entidad creado con Entity Framework 6 que representa las tablas de Cliente, Pedido y Producto

Visual Studio también proporciona el Entity Designer para la creación visual del EDM y la especificación de la asignación. Este enfoque se denomina enfoque "Model First", como alternativa a los enfoques "Code First" y "Database First". El resultado de la herramienta es el archivo XML (*.edmx) que especifica el esquema y la asignación. El archivo edmx contiene artefactos de metadatos de EF (contenido CSDL/MSL/SSDL). Estos tres archivos (csdl, msl, ssdl) también se pueden crear o editar a mano. [ cita requerida ] El enfoque "Model First" no será compatible con la versión EF Core. [32]

Cartografía

El Asistente para modelos de datos de entidades [33] de Visual Studio genera inicialmente una asignación 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 están compuestos por las tablas, y las claves primarias y externas unen 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 múltiples campos tipificados (cada campo se asigna a una determinada columna de la base de datos) y pueden contener información de múltiples tablas físicas. Los tipos de entidad pueden estar relacionados 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 participan y a la que acceden, que, en lugar de recuperar el valor de alguna columna de la base de datos, recorre la relación y devuelve la entidad (o una colección de entidades) con la que está relacionada. [ 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 resuelve la aplicación y están indexados por una clave. Por ejemplo, al convertir el esquema físico descrito anteriormente, tendremos dos tipos de entidad:

El esquema lógico y su mapeo con el esquema físico se representan como un Modelo de Datos de Entidad (EDM), especificado como un archivo XML. ADO.NET Entity Framework utiliza el EDM para realizar realmente el mapeo, permitiendo que la aplicación trabaje con las entidades, mientras que abstrae internamente el uso de construcciones ADO.NET como DataSet y RecordSet . ADO.NET Entity Framework realiza las uniones necesarias para tener información de referencia de entidad de múltiples tablas, o cuando se recorre una relación. Cuando se actualiza una entidad, rastrea de qué tabla proviene la información y emite instrucciones de actualización SQL para actualizar las tablas en las que se han actualizado algunos datos. ADO.NET Entity Framework utiliza eSQL, un derivado de SQL, para realizar consultas, operaciones de teoría de conjuntos y actualizaciones en entidades y sus relaciones. Las consultas en eSQL, si es necesario, se traducen luego a la versión SQL nativa de la base de datos subyacente. [ cita requerida ]

Los tipos de entidad y los conjuntos de entidades forman el esquema lógico de EDM y pueden exponerse 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 simplemente una interfaz para las instancias de los tipos de entidad de EDM, lo que permite que los lenguajes orientados a objetos accedan a ellos y los utilicen. De manera similar, se pueden crear otras interfaces que exponen las entidades a través de servicios web (por ejemplo, WCF Data Services ) o XML que se utiliza cuando las entidades se serializan para el almacenamiento persistente o la transferencia por cable. [34]

Entidades

Las entidades** son instancias de EntityType s; representan las instancias individuales de los objetos (como customer , orders ) 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 al darle un nombre y un tipo. Las propiedades de un tipo de entidad en ADO.NET Entity Framework están completamente tipificadas 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 ]

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

Tipos primitivos EDM (tipos simples): [35] [37]

Relaciones

Dos tipos de entidades cualesquiera pueden estar relacionados, ya sea mediante 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 que contiene detalles del pedido es una relación de contención. Una relación de contención también se puede utilizar para modelar la herencia entre entidades. La relación entre dos tipos de entidades se especifica mediante un tipo de relación , cuyas instancias, llamadas relaciones , relacionan instancias de entidad. En futuras versiones, se pueden introducir 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 número 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 binaria (de grado dos) bidireccional. La multiplicidad define cuántas instancias de entidad se pueden relacionar entre sí. 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 denomina 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 sobre una entidad en caso de que se realice una acción sobre una entidad relacionada. Se puede especificar una relación para que realice una Acción cuando se realiza alguna Operación sobre 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 realizar son: [38]

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

Lenguaje de definición de esquema

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 EDM. El SDL define los SimpleTypes de forma similar a los tipos primitivos CTS , incluidos String , Int32 , Double , Decimal , Guid y DateTime , entre otros. Una Enumeration , 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 framework. Los ComplexTypes se crean a partir de una agregación de otros tipos. Una colección de propiedades de estos tipos define un Entity Type. Esta definición se puede escribir en la gramática EBNF como: [ cita requerida ]

EntityType :: =  ENTITYTYPE entityTypeName [ BASE entityTypeName ]  [ ABSTRACT true | false ]  KEY propertyName [,  propertyName ] *  {( propertyName PropertyType [ PropertyFacet ] * )  + }TipoDePropiedad ::=  (  ( TipoPrimitivo [ CarasDeTipoPrimitivo ] * )  |  ( NombreDeTipoComplejo )  |  TipoDeFila PropertyFacet ::=  (  [ NULLABLE verdadero |  falso ]  |  [ DEFAULT defaultVal ]  |  [ MULTIPLICIDAD [ 1 | * ]]  ) PropertyTypeFacet ::=  MAXLENGTH |  PRECISIÓN |  ESCALA  |  UNICODE |  LONGITUD FIJA |  COLACIÓN  |  FECHA Y HORA |  PRESERVA LOS SEGUNDOS TipoPrimitivo ::=  BINARIO |  CADENA |  BOOLEANO  |  SIMPLE |  DOBLE |  DECIMAL |  GUID  |  BYTE |  SBYTE |  INT16 |  INT32 |  INT64  |  FECHAYHORA |  DESVENTAJADETIME |  HORA )

Las facetas se utilizan para describir los metadatos de una propiedad, como por ejemplo si es nula o tiene un valor predeterminado, así como la cardinalidad de la propiedad, es decir, si la propiedad tiene un solo valor o varios valores. Una multiplicidad de “1” denota una propiedad con un solo valor; un “*” significa que es una propiedad con varios valores. Como ejemplo, una entidad se puede denotar en SDL como: [39]

<ComplexType Nombre= "Dirección" > <Propiedad Nombre= "Calle" Tipo= "Cadena" Acepta valores NULL= "falso" /> <Propiedad Nombre= "Ciudad" Tipo= "Cadena" Acepta valores NULL= "falso" /> <Propiedad Nombre= "País" Tipo= "Cadena" Acepta valores NULL= "falso" /> <Propiedad Nombre= "Código Postal" Tipo= "Int32" /> </ComplexType> <EntityType Nombre= "Cliente" > <Clave> <PropertyRef Nombre= "Correo electrónico" /> </Clave> <Propiedad Nombre= "Nombre" Tipo= "Cadena" /> <Propiedad Nombre= "Correo electrónico" Tipo= "Cadena" Acepta valores NULL= "falso" /> <Propiedad Nombre= "Dirección" Tipo= "Dirección" /> </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 muchos entre Cliente y Pedidos se puede definir como

< Nombre de asociación= "ClienteYPedidos" > < Tipo final = "Cliente" Multiplicidad= "1" /> < Tipo final = "Pedidos" Multiplicidad= "*" > < AcciónAlEliminar= "Cascada" /> </Fin> </Asociación>            

Consulta de datos

Entidad SQL

ADO.NET Entity Framework utiliza una variante del lenguaje de consulta estructurado , denominada Entity SQL , cuyo objetivo es 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 uniones , ya que el lenguaje de consulta estructurado está diseñado para abstraer la partición de datos entre tablas. [ cita requerida ]

Las consultas sobre el modelo conceptual se facilitan mediante las clases EntityClient , que aceptan una consulta Entity SQL. La secuencia de consultas analiza la consulta Entity SQL en un árbol de comandos, separando la consulta en varias tablas, que se entregan al proveedor EntityClient. Al igual que los proveedores de datos de ADO.NET, un proveedor EntityClient también se inicializa utilizando un objeto Connection , que además de los parámetros habituales de almacén de datos e 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 Entity SQL en una consulta SQL en el formato nativo de la base de datos. La ejecución de la consulta luego devuelve un ResultSet de Entity SQL, que no está limitado 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 ]

Funciones canónicas de Entity SQL

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 de ADO.NET recibe una función, la traduce a la declaración SQL deseada. [40]

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 ellas devuelven los mismos resultados. [ cita requerida ]

LINQ a entidades

El proveedor LINQ to Entities permite utilizar LINQ 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

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

Visualizadores

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. En Visual Studio Marketplace hay disponible un visualizador para LINQ to Entities (Object Query) dirigido a todos los RDBMS. [41]

Perfiles de rendimiento

Hay varios perfiladores disponibles comercialmente para solucionar problemas de rendimiento utilizando Entity Framework, tanto para las variantes EF como para las EF Core.

Herramientas y extensiones - Entity Framework Core

Hay herramientas y extensiones de Entity Framework Core disponibles para mejorar el rendimiento de Entity Framework Core. [42]

Herramientas y extensiones - Entity Framework EF6

Hay herramientas y extensiones de Entity Framework disponibles para mejorar el rendimiento de Entity Framework. [43]

Véase también

Referencias

  1. ^ "Lanzamientos · dotnet/efcore · GitHub". GitHub .
  2. ^ Krill, Paul (20 de julio de 2012). "Microsoft publica código abierto de Entity Framework". InfoWorld . Consultado el 24 de julio de 2012 .
  3. ^ ajcvickers (9 de marzo de 2022). "Políticas de compatibilidad de Entity Framework". learn.microsoft.com . Consultado el 12 de diciembre de 2022 .
  4. ^ ajcvickers. "Comparación de EF6 y EF Core". learn.microsoft.com . Consultado el 12 de diciembre de 2022 .
  5. ^ ajcvickers (14 de noviembre de 2023). "Novedades de EF Core 8". learn.microsoft.com . Consultado el 14 de noviembre de 2023 .
  6. ^ "El desajuste de impedancia relacional de objetos". AgileData.org . Consultado el 12 de diciembre de 2022 .
  7. ^ mcleblanc (15 de septiembre de 2021). «Descripción general de Entity Framework: ADO.NET». learn.microsoft.com . Consultado el 12 de diciembre de 2022 .
  8. ^ "Firmantes de la moción de censura de Entity Framework | Wufoo". efvote.wufoo.com . Consultado el 12 de diciembre de 2022 .
  9. ^ "Actualización sobre 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 .
  10. ^ "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 .
  11. ^ "EF5 disponible en CodePlex". 11 de agosto de 2012. Archivado desde el original el 7 de septiembre de 2017. Consultado el 20 de marzo de 2014 .
  12. ^ "EF6 RTM disponible". 17 de octubre de 2013. Archivado desde el original el 30 de marzo de 2014.
  13. ^ "Entity Framework - Página de inicio". GitHub . 14 de septiembre de 2016.
  14. ^ ajcvickers (14 de octubre de 2020). "Novedades: EF6". learn.microsoft.com . Consultado el 12 de diciembre de 2022 .
  15. ^ ab "EF7 - Nuevas plataformas, nuevos almacenes de datos". 19 de mayo de 2014. Archivado desde el original el 29 de septiembre de 2015.
  16. ^ "Entity Framework Core 1.0.0 ya está disponible". 27 de junio de 2016.
  17. ^ Hanselman, Scott. "ASP.NET 5 ha muerto. Presentación de ASP.NET Core 1.0 y .NET Core 1.0. Scott Hanselman". www.hanselman.com . Consultado el 11 de julio de 2016 .
  18. ^ "Anuncio de .NET Core 2.0". Blog de .NET. 14 de agosto de 2017.
  19. ^ "Anuncio de .NET Core 3.0". Blog de .NET. 23 de septiembre de 2019.
  20. ^ de ajcvickers. "Plan para Entity Framework Core 5.0". learn.microsoft.com . Consultado el 12 de diciembre de 2022 .
  21. ^ ab "Microsoft.EntityFrameworkCore 5.0.0". nuget.org . Consultado el 12 de diciembre de 2022 .
  22. ^ "Versiones y planificación de Entity Framework Core". Diciembre de 2023.
  23. ^ ajcvickers. "Plan para Entity Framework Core 6.0". learn.microsoft.com . Consultado el 12 de diciembre de 2022 .
  24. ^ "Microsoft.EntityFrameworkCore 6.0.0". nuget.org . Consultado el 12 de diciembre de 2022 .
  25. ^ ajcvickers. "Versiones y planificación de EF Core". learn.microsoft.com . Consultado el 12 de diciembre de 2022 .
  26. ^ Roth, Daniel (8 de noviembre de 2022). "Anuncio de ASP.NET Core en .NET 7". Blog de .NET . Consultado el 12 de diciembre de 2022 .
  27. ^ ajcvickers. "Novedades de EF Core 7.0". learn.microsoft.com . Consultado el 12 de diciembre de 2022 .
  28. ^ Arthur, Vickers (14 de noviembre de 2023). "Entity Framework Core 8 (EF8) ya está disponible". Blog de .NET . Consultado el 14 de noviembre de 2023 .
  29. ^ ajcvickers (14 de noviembre de 2023). "Novedades de EF Core 8". learn.microsoft.com . Consultado el 14 de noviembre de 2023 .
  30. ^ "Entity Data Model". MSDN, Microsoft. 2 de agosto de 2012. Consultado el 15 de agosto de 2013 .
  31. ^ Especificaciones CSDL, SSDL y MSL, MSDN , archivado desde el original el 8 de noviembre de 2010 , consultado el 6 de diciembre de 2010
  32. ^ ajcvickers (9 de marzo de 2022). "Portación de EF6 a EF Core: portación de un modelo basado en EDMX - EF". learn.microsoft.com . Consultado el 7 de junio de 2024 .
  33. ^ Asistente para modelos de datos de entidades, MSDN , consultado el 6 de diciembre de 2010
  34. ^ Kogent Solutions Inc. (2009), Libro negro de ASP.NET 3.5 , Dreamtech Press, ISBN 978-81-7722-831-1
  35. ^ ab Simple Types (EDM), MSDN , consultado el 6 de diciembre de 2010
  36. ^ Elemento ComplexType (CSDL), MSDN , consultado el 6 de diciembre de 2010
  37. ^ Tipos de modelos conceptuales, MSDN , consultado el 6 de diciembre de 2010
  38. ^ Elemento OnDelete (CSDL), MSDN , consultado el 6 de diciembre de 2010
  39. ^ Facetas (CSDL), MSDN , consultado el 6 de diciembre de 2010
  40. ^ ab Funciones canónicas (Entity SQL), MSDN , consultado el 29 de marzo de 2010
  41. ^ "Visualizador de consultas de LINQ to Entity - Visual Studio Marketplace". marketplace.visualstudio.com . Consultado el 12 de diciembre de 2022 .
  42. ^ ErikEJ. "Herramientas y extensiones - EF Core". learn.microsoft.com . Consultado el 12 de diciembre de 2022 .
  43. ^ ajcvickers (9 de marzo de 2022). "Herramientas y extensiones: EF6". learn.microsoft.com . Consultado el 12 de diciembre de 2022 .

Bibliografía

Enlaces externos