Articulo de referencia

Marco de entidades

Entity Framework Core: v10.0.0"},"latest release date":{"wt":"Entity Framework Core: {{Start date and age|2025|11|11}} {{cite web |title=Releases · dotnet/efcore · GitHub|websit...

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

Entity Framework 6.4 fue la última versión del framework 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 de trabajo conocido como Entity Framework Core (EF Core) con características similares, pero no completas. [ 4 ] La numeración de versiones de este marco de trabajo se reinició desde 1.0.

Descripción general

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 suelen enfrentarse al dilema de lograr dos objetivos muy diferentes: modelar las entidades, las relaciones y la lógica de los problemas de negocio que resuelven, y trabajar con los motores de datos utilizados para almacenar y recuperar la información. Los datos pueden abarcar múltiples sistemas de almacenamiento, cada uno con sus propios protocolos; incluso las aplicaciones que trabajan con un único sistema de almacenamiento deben equilibrar los requisitos de este con los de escribir código de aplicación eficiente y mantenible. Este problema se conoce generalmente como la " incompatibilidad de impedancia objeto-relacional ". [ 5 ]

Se han desarrollado numerosas herramientas de mapeo objeto-relacional (ORM, por sus siglas en inglés) (también conocidas como "gestores objeto-relacionales") 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 con un mayor nivel de abstracción al gestionar datos y 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 promueve para su uso dentro del ecosistema de desarrollo de Microsoft. [ 6 ]

Historia

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. Esta versión fue ampliamente criticada, llegando incluso a recibir un «voto de censura» firmado por al menos mil desarrolladores. [ 7 ]  ( 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. [ 8 ]

El 12 de abril de 2011 se lanzó una tercera versión de Entity Framework, la versión 4.1, con soporte para 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. Esta actualización incluye correcciones de errores y nuevos tipos compatibles.

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

La versión 5.0.0 se publicó el 11 de agosto de 2012 [ 10 ] y está dirigida a .NET Framework 4.5. Además, esta versión está disponible para .NET Framework 4, pero sin ninguna ventaja en tiempo de ejecución sobre la versión 4.

La versión 6.0 se publicó el 17 de octubre de 2013 [ 11 ] 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. [ 12 ] Esta versión tiene varias mejoras para la compatibilidad con code-first . [ 13 ]

Microsoft decidió entonces modernizar, modularizar y llevar .NET a múltiples plataformas, como Linux, OSX y otras, lo que significaba que la siguiente versión de Entity Framework sería una reescritura completa. [ 14 ] 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. [ 15 ] Originalmente se llamaba Entity Framework 7, pero se le cambió el nombre para destacar que era una reescritura completa en lugar de una actualización incremental y que no reemplazaba a EF6. [ 16 ]

Entity Framework Core 1.0 tiene licencia Apache License v2 y se desarrolló completamente de forma abierta en GitHub . Si bien Entity Framework Core 1.0 comparte algunas similitudes conceptuales con versiones anteriores de Entity Framework, se trata de un código base completamente nuevo diseñado para ser más eficiente, potente, flexible y extensible, compatible con Windows, Linux y OSX, y que admite una nueva gama de almacenes de datos relacionales y NoSQL . [ 14 ]

Entity Framework Core 2.0 se lanzó el 14 de agosto de 2017 junto con Visual Studio 2017 15.3 y ASP.NET Core 2.0 [ 17 ]  ( 14-08-2017 )

Entity Framework Core 3.0 se lanzó el 23 de septiembre de 2019 junto con Visual Studio 2019 16.3 y ASP.NET Core 3.0, [ 18 ]  (2019-09-23)

Entity Framework Core 3.1 (EF Core 3.1) se lanzó oficialmente para su uso en producción el 3 de diciembre de 2019 y será la versión preferida con soporte a largo plazo hasta al menos el 3 de diciembre de 2022. [ 19 ] [ 20 ]  (2019-12-03)

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

Entity Framework Core 6.0 (EF Core 6) se publicó el 10 de noviembre de 2021 [ 22 ] [ 23 ] y será la versión preferida con soporte a largo plazo hasta al menos el 12 de noviembre de 2024. [ 24 ]  (2021-11-10)

Entity Framework Core 7.0 (EF Core 7) se lanzó el 8 de noviembre de 2022 [ 25 ] [ 26 ] agregando características como columnas JSON y actualizaciones masivas .  (2022-11-08)

Entity Framework Core 8.0 (EF Core 8) se lanzó el 14 de noviembre de 2023 [ 27 ] [ 28 ] agregando características como objetos Value usando tipos complejos y colecciones primitivas .  (2023-11-14)

Arquitectura

Pila de ADO.NET Entity Framework.

La arquitectura de ADO.NET Entity Framework, desde la base, consta de lo siguiente:

  • Proveedores específicos de la fuente de datos , que abstraen las interfaces ADO.NET para conectarse a la base de datos al programar contra el esquema conceptual.
  • El proveedor de mapas es un proveedor específico de la base de datos que traduce el árbol de comandos SQL de la entidad a una consulta en el lenguaje SQL nativo de la base de datos. Incluye el puente específico del almacén , que es el componente responsable de traducir el árbol de comandos genérico a un árbol de comandos específico del almacén.
  • El analizador y mapeo de vistas EDM toma la especificación SDL del modelo de datos y su mapeo al modelo relacional subyacente, lo que permite programar sobre el modelo conceptual. A partir del esquema relacional, crea vistas de los datos que corresponden al modelo conceptual. Agrega información de varias tablas para agruparlas en una entidad y divide una actualización de una entidad en múltiples actualizaciones a las tablas que contribuyeron a dicha entidad.
  • El proceso de consulta y actualización 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 gestionan todos los metadatos relacionados con entidades, relaciones y asignaciones.
  • Transacciones , para integrarse con las capacidades transaccionales del almacén subyacente. Si el almacén subyacente no admite transacciones, es necesario implementar dicha compatibilidad en esta capa.
  • La API de la capa conceptual es el entorno de ejecución que expone el modelo de programación para codificar sobre el esquema conceptual. Sigue el patrón ADO.NET, que consiste en usar objetos Connection para referirse 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 utilizar ADO.NET Entity Framework en un entorno con conexión intermitente.
  • Base de datos integrada : ADO.NET Entity Framework incluye una base de datos integrada ligera para el almacenamiento en caché del lado del cliente y la consulta de datos relacionales.
  • ADO.NET Entity Framework también incluye herramientas de diseño , como Mapping Designer, que simplifican la tarea de mapear un esquema conceptual al esquema relacional y especificar qué propiedades de un tipo de entidad corresponden a qué tabla de la base de datos.
  • Capa de programación , que expone el EDM como construcciones de programación que pueden ser utilizadas por lenguajes de programación.
    • Los servicios de objetos generan automáticamente código para las clases CLR que exponen las mismas propiedades que una entidad, lo que permite la instanciación de entidades como objetos .NET.
    • Servicios web , que exponen entidades como servicios web.
  • Servicios de alto nivel , como los servicios de generación de informes, que trabajan con entidades en lugar de con datos relacionales.

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 Modelo de Datos de Entidad, una versión extendida del modelo entidad-relación . [ 29 ] 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 debe especificarse 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. [ 30 ]

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

Visual Studio también proporciona el Diseñador de Entidades para la creación visual del EDM y la especificación de asignación. Este enfoque se denomina "Modelo Primero", como alternativa a los enfoques "Código Primero" y "Base de Datos Primero". La salida de la herramienta es un 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 manualmente. El enfoque "Modelo Primero" no será compatible con la versión EF Core. [ 31 ]

Cartografía

El Asistente para modelos de datos de entidad [ 32 ] en Visual Studio genera inicialmente una correspondencia 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 tablas, donde las claves primarias y foráneas unen las tablas relacionadas. En cambio, los tipos de entidad definen el esquema conceptual de los datos.

Los tipos de entidad son una agregación de múltiples campos tipados (cada campo se corresponde con una columna específica de la base de datos) y pueden contener información de varias 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 forma similar: mediante un campo cuyo nombre indica la relación en la que participan y al que acceden. En lugar de recuperar el valor de alguna columna de la base de datos, se recorre la relación y se devuelve la entidad (o un conjunto de entidades) con la que está relacionada.

Los tipos de entidad forman la clase de objetos a la 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 se indexan mediante una clave. Por ejemplo, al convertir el esquema físico descrito anteriormente, tendremos dos tipos de entidad:

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

El esquema lógico y su correspondencia 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 la correspondencia, permitiendo que la aplicación trabaje con las entidades, abstraiendo internamente el uso de construcciones de ADO.NET como DataSet y RecordSet . ADO.NET Entity Framework realiza las uniones necesarias para que las entidades hagan referencia a información de varias tablas o cuando se recorre una relación. Cuando se actualiza una entidad, rastrea la tabla de origen de la información y emite sentencias SQL de actualización para actualizar las tablas en las que se han actualizado algunos datos. ADO.NET Entity Framework utiliza eSQL, una variante de SQL, para realizar consultas, operaciones de conjuntos y actualizaciones en entidades y sus relaciones. Las consultas en eSQL, si es necesario, se traducen al lenguaje SQL nativo de la base de datos subyacente.

Los tipos de entidad y los conjuntos de entidades conforman el esquema lógico de EDM y pueden exponerse de cualquier forma. ADO.NET Entity Framework incluye Object Service , que presenta estas entidades como objetos con los elementos y las 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 a los lenguajes orientados a objetos acceder a ellos y utilizarlos. Del mismo modo, se pueden crear otras interfaces que expongan 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 la red. [ 33 ]

Entidades

Las entidades son instancias de EntityType ; representan las instancias individuales de los objetos (como clientes , pedidos ) a los que se refiere la información. La identidad de una entidad se define 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 define las propiedades que tendrá. Las propiedades describen algún aspecto de la entidad asignándole un nombre y un tipo. Las propiedades de un tipo de entidad en ADO.NET Entity Framework están completamente tipadas y son totalmente compatibles con el sistema de tipos utilizado en un sistema de gestión de bases de datos (DBMS), así como con el Sistema de Tipos Comunes (CTS) de .NET Framework. Una propiedad puede ser SimpleType o ComplexType , y también puede tener múltiples valores. Todos los EntityType pertenecen a un espacio de nombres y tienen una propiedad EntityKey que identifica de forma única cada instancia del tipo de entidad. Los diferentes tipos de propiedades se distinguen de la siguiente manera:

  • SimpleType corresponde a tipos de datos primitivos como enteros , caracteres y números de punto flotante . [ 34 ]
  • ComplexType es un agregado de múltiples propiedades de tipo SimpleType o ComplexType . Sin embargo, a diferencia de EntityType , los ComplexType no pueden tener una EntityKey . En Entity Framework v1, los ComplexType no se pueden heredar. [ 35 ]

Todas las instancias de entidades se almacenan en EntityContainers, que son contenedores de entidades por proyecto. Cada proyecto tiene uno o más EntityContainers con nombre, que pueden hacer referencia a entidades de diferentes espacios de nombres y tipos de entidades. Varias instancias de un mismo tipo de entidad se pueden almacenar en colecciones llamadas EntitySets. Un mismo tipo de entidad puede tener varios EntitySets.

Tipos primitivos de EDM (tipos simples): [ 34 ] [ 36 ]

Relaciones

Dos tipos de entidades cualesquiera pueden relacionarse mediante una relación de asociación o una relación de contención . Por ejemplo, un envío facturado a un cliente es una asociación, mientras que un pedido contiene detalles del pedido es una relación de contención. Una relación de contención también puede utilizarse 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 entidades. En futuras versiones, podrían introducirse otros tipos de relaciones, como composición o identificación .

Los tipos de relaciones se caracterizan por su grado (aridad) o la cantidad de tipos de entidades 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 pueden relacionarse entre sí. Según la multiplicidad, las relaciones pueden ser uno a uno, uno a muchos o muchos a muchos. Las relaciones entre entidades tienen un nombre; este nombre se denomina Rol y define el propósito de la relación.

Un tipo de relación también puede tener una Operación o Acción asociada, lo que permite realizar alguna acción en una entidad cuando se realiza una acción en una entidad relacionada. Se puede especificar que una relación realice 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 realizar son: [ 37 ]

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

En el caso de las relaciones de asociación, que pueden tener semánticas diferentes en ambos extremos, se pueden especificar acciones diferentes para cada extremo.

Lenguaje de definición de esquemas

ADO.NET Entity Framework utiliza un lenguaje de definición de datos basado en XML llamado Schema Definition Language (SDL) para definir el esquema EDM. El SDL define los SimpleTypes, similares a los tipos primitivos de 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 son compatibles 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 tipo de entidad. Esta definición se puede escribir en la gramática EBNF como:

Tipo de entidad :: = TIPO DE ENTIDAD NombreTipoEntidad [ BASE NombreTipoEntidad ] [ ABSTRACTO verdadero | falso ] CLAVE NombrePropiedad [, NombrePropiedad ] * {( NombrePropiedad TipoPropiedad [ FacetaPropiedad ] * ) + }PropertyType ::= ( ( PrimitiveType [ PrimitiveTypeFacets ] * ) | ( complexTypeName ) | RowTypePropertyFacet ::= ( [ NULLABLE true | false ] | [ DEFAULT defaultVal ] | [ MULTIPLICITY [ 1 | * ]] )Tipo de propiedad Faceta ::= MAXLENGTH | PRECISION | SCALE | UNICODE | FIXEDLENGTH | COLLATION | DATETIMEKIND | PRESERVESECONDSTipo primitivo ::= BINARIO | CADENA | BOOLEANO | SIMPLE | DOBLE | DECIMAL | GUID | BYTE | SBYTE | INT16 | INT32 | INT64 | FECHA Y HORA | DESPLAZAMIENTO DE FECHA Y HORA | HORA )

Las facetas se utilizan para describir los metadatos de una propiedad, como si es anulable o tiene un valor predeterminado, así como la cardinalidad de la propiedad, es decir, si la propiedad es de valor único o de valores múltiples. Una multiplicidad de “1” denota una propiedad de valor único; un “*” significa que es una propiedad de valores múltiples. Como ejemplo, una entidad se puede denotar en SDL como: [ 38 ]

<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= "Customer" > <Key> <PropertyRef Name= "Email" /> </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 especificando los puntos finales y sus multiplicidades. Por ejemplo, una relación de uno a muchos entre Cliente y Pedidos se puede definir como

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

Consulta de datos

SQL de entidad

ADO.NET Entity Framework utiliza una variante del lenguaje de consulta estructurado , denominada Entity SQL , que permite escribir consultas declarativas y actualizaciones sobre entidades y relaciones entre entidades, a nivel conceptual. Se diferencia de SQL en que no incluye construcciones explícitas para uniones , ya que EDM está diseñado para abstraer la partición de datos entre tablas.

Las consultas al modelo conceptual se facilitan mediante las clases EntityClient , que aceptan una consulta SQL de entidad. La canalización de consultas analiza la consulta SQL de entidad y la convierte en un árbol de comandos, distribuyéndola entre varias tablas, que se entrega al proveedor EntityClient. Al igual que los proveedores de datos de ADO.NET, un proveedor EntityClient también se inicializa mediante un objeto Connection , que, además de los parámetros habituales de información de almacenamiento de datos y autenticación, requiere el esquema SDL y la información de asignación. El proveedor EntityClient, a su vez, convierte el árbol de comandos SQL de entidad en una consulta SQL en el formato nativo de la base de datos. La ejecución de la consulta devuelve un Entity SQL ResultSet, que no se limita a una estructura tabular, a diferencia de los ResultSets de ADO.NET.

Entity SQL mejora SQL al agregar soporte intrínseco para:

  • Los tipos , al igual que las entidades ADO.NET, están completamente tipados.
  • EntitySets , que se tratan como colecciones de entidades.
  • Componibilidad , que elimina las restricciones sobre dónde se pueden usar las subconsultas.

Funciones canónicas de SQL de entidad

Las funciones canónicas son compatibles con todos los proveedores de datos que cumplen con Entity Framework. Se pueden usar en una consulta SQL de Entity. 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 un proveedor de datos ADO.NET recibe una función, la traduce a la instrucción SQL deseada. [ 39 ]

Sin embargo, no todos los sistemas de gestión de bases de datos (DBMS) ofrecen la misma funcionalidad ni un conjunto de funciones estándar integradas. Además, 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, ni todas devuelven los mismos resultados.

LINQ a entidades

El proveedor LINQ to Entities permite utilizar Language Integrated Query (LINQ) para consultar datos a través del modelo conceptual de Entity Framework. Los desarrolladores pueden escribir consultas en C# o Visual Basic utilizando operadores LINQ estándar como Where, Select, y GroupBy, en lugar de escribir sentencias SQL específicas de la base de datos . LINQ to Entities traduce estas consultas a árboles de comandos de Entity Framework, que luego se convierten en comandos para el proveedor de base de datos subyacente y se ejecutan en el origen de datos. Dado que las consultas deben traducirse a operaciones de base de datos, no todos los operadores y expresiones LINQ son compatibles. Existen varios proveedores específicos de bases de datos compatibles con Entity Framework. [ 40 ] [ 41 ]

SQL nativo

En Entity Framework v4 se añadieron los nuevos métodos ExecuteStoreQuery() y ExecuteStoreCommand() a la clase ObjectContext.

Visualizadores

Visual Studio cuenta con una función llamada Visualizador. Una consulta LINQ escrita en Visual Studio se puede visualizar como SQL nativo mediante un Visualizador durante la sesión de depuración. En Visual Studio Marketplace está disponible un Visualizador para LINQ to Entities (Object Query) compatible con todos los sistemas de gestión de bases de datos relacionales (RDBMS). [ 42 ]

Perfilado de rendimiento

Existen diversas herramientas de análisis de rendimiento disponibles comercialmente para solucionar problemas de rendimiento al usar Entity Framework, tanto para las variantes de EF como de EF Core.

Herramientas y extensiones - Entity Framework Core

Las herramientas y extensiones de Entity Framework Core están disponibles para mejorar el rendimiento de Entity Framework Core. [ 43 ]

EF Core expone comandos de tiempo de diseño para migraciones e ingeniería inversa a través de la CLI de .NET (dotnet ef) y la consola del administrador de paquetes de Visual Studio, que generan un DbContext y tipos de entidad a partir de una base de datos existente. Además de las herramientas oficiales, las integraciones con IDE proporcionan flujos de trabajo con interfaz gráfica para tareas comunes: EF Core Power Tools en Visual Studio añade ingeniería inversa con enfoque en la base de datos y visualización de modelos, mientras que Entity Developer ofrece un diseñador visual para EF Core que admite enfoques con enfoque en la base de datos y en el modelo, con generación de código y configuración de mapeo. Funcionalidades similares están disponibles en otros IDE (por ejemplo, la interfaz de usuario de Rider para los comandos de EF Core), y los escenarios avanzados pueden aprovechar plantillas de andamiaje personalizables para controlar el código generado.

Herramientas y extensiones - Entity Framework EF6

Las herramientas y extensiones de Entity Framework están disponibles para mejorar el rendimiento de Entity Framework. [ 44 ]

Véase también

Referencias

  1. "Versiones · dotnet/efcore · GitHub" . GitHub .
  2. Krill, Paul (20 de julio de 2012). "Microsoft libera Entity Framework como código abierto" . InfoWorld . Consultado el 24 de julio de 2012 .
  3. ajcvickers (9 de marzo de 2022). "Políticas de soporte de Entity Framework" . learn.microsoft.com . Consultado el 12 de diciembre de 2022 .
  4. ajcvickers. "Comparar EF6 y EF Core" . learn.microsoft.com . Consultado el 12 de diciembre de 2022 .
  5. "El desajuste de impedancia objeto-relacional" . AgileData.org . Consultado el 12 de diciembre de 2022 .
  6. mcleblanc (15 de septiembre de 2021). "Descripción general de Entity Framework - ADO.NET" . learn.microsoft.com . Consultado el 12 de diciembre de 2022 .
  7. "Firmantes del voto de censura de Entity Framework | Wufoo" . efvote.wufoo.com . Consultado el 12 de diciembre de 2022 .
  8. "Actualización sobre Entity Framework en .NET 4 y Visual Studio 2010" . Blog del equipo de ADO.NET. 11 de mayo de 2009. Archivado del original el 20 de enero de 2010. Consultado el 1 de noviembre de 2011 .
  9. "EF4.3.1 y EF5 Beta 1 disponibles en NuGet" . Blog del equipo de ADO.NET. 29 de febrero de 2012. Archivado del original el 25 de marzo de 2012. Consultado el 27 de marzo de 2012 .
  10. "EF5 disponible en CodePlex" . 11 de agosto de 2012. Archivado del original el 7 de septiembre de 2017. Consultado el 20 de marzo de 2014 .
  11. "EF6 RTM disponible" . 17 de octubre de 2013. Archivado del original el 30 de marzo de 2014.
  12. "Entity Framework - Inicio" . GitHub . 14 de septiembre de 2016.
  13. ajcvickers (14 de octubre de 2020). "Novedades - EF6" . learn.microsoft.com . Consultado el 12 de diciembre de 2022 .
  14. 1 2 "EF7 - Nuevas plataformas, nuevos almacenes de datos" . 19 de mayo de 2014. Archivado del original el 29 de septiembre de 2015.
  15. "Entity Framework Core 1.0.0 disponible" . 27 de junio de 2016.
  16. 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 .
  17. "Anuncio de .NET Core 2.0" . Blog de .NET. 14 de agosto de 2017.
  18. "Anuncio de .NET Core 3.0" . Blog de .NET. 23 de septiembre de 2019.
  19. 1 2 ajcvickers. "Plan para Entity Framework Core 5.0" . learn.microsoft.com . Consultado el 12 de diciembre de 2022 .
  20. 1 2 "Microsoft.EntityFrameworkCore 5.0.0" . nuget.org . Consultado el 12 de diciembre de 2022 .
  21. "Lanzamientos y planificación de Entity Framework Core" . Diciembre de 2023.
  22. ajcvickers. "Plan para Entity Framework Core 6.0" . learn.microsoft.com . Consultado el 12 de diciembre de 2022 .
  23. "Microsoft.EntityFrameworkCore 6.0.0" . nuget.org . Consultado el 12 de diciembre de 2022 .
  24. ajcvickers. "Lanzamientos y planificación de EF Core" . learn.microsoft.com . Consultado el 12 de diciembre de 2022 .
  25. Roth, Daniel (2022-11-08). "Anuncio de ASP.NET Core en .NET 7" . Blog de .NET . Consultado el 12 de diciembre de 2022 .
  26. ajcvickers. "Novedades de EF Core 7.0" . learn.microsoft.com . Consultado el 12 de diciembre de 2022 .
  27. 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 .
  28. ajcvickers (14 de noviembre de 2023). "Novedades de EF Core 8" . learn.microsoft.com . Consultado el 14 de noviembre de 2023 .
  29. "Modelo de datos de entidad" . MSDN, Microsoft. 2 de agosto de 2012. Consultado el 15 de agosto de 2013 .
  30. Especificaciones de CSDL, SSDL y MSL , MSDN , archivado del original el 8 de noviembre de 2010 , consultado el 6 de diciembre de 2010.
  31. ajcvickers (09/03/2022). "Migración de EF6 a EF Core: migración de un modelo basado en EDMX - EF" . learn.microsoft.com . Consultado el 07/06/2024 .
  32. Asistente para el modelo de datos de entidad , MSDN , consultado el 6 de diciembre de 2010
  33. Kogent Solutions Inc. (2009), ASP.NET 3.5 Black Book , Dreamtech Press, ISBN 978-81-7722-831-1
  34. 1 2 Tipos simples (EDM) , MSDN , consultado el 6 de diciembre de 2010
  35. Elemento ComplexType (CSDL) , MSDN , consultado el 6 de diciembre de 2010
  36. Tipos de modelos conceptuales , MSDN , consultado el 6 de diciembre de 2010
  37. OnDelete Element (CSDL) , MSDN , consultado el 6 de diciembre de 2010
  38. Facetas (CSDL) , MSDN , consultado el 6 de diciembre de 2010
  39. 1 2 Funciones canónicas (Entity SQL) , MSDN , consultado el 29/03/2010
  40. "LINQ to Entities - ADO.NET" . Microsoft Learn . 15 de septiembre de 2021. Consultado el 13 de junio de 2026 .
  41. "Centro de documentación de Entity Framework" . Microsoft Learn . Consultado el 13 de junio de 2026 .
  42. "Visualizador de consultas Linq to Entity - Visual Studio Marketplace" . marketplace.visualstudio.com . Consultado el 12 de diciembre de 2022 .
  43. ErikEJ. "Herramientas y extensiones - EF Core" . learn.microsoft.com . Consultado el 12 de diciembre de 2022 .
  44. ajcvickers (9 de marzo de 2022). "Herramientas y extensiones - EF6" . learn.microsoft.com . Consultado el 12 de diciembre de 2022 .

Bibliografía

  • Lee, Craig (14 de junio de 2010), ADO.NET Entity Framework Unleashed (1.ª  ed.), Sams , pág.  600, ISBN 978-0-672-33074-2Archivado del original el 1 de octubre de 2012.
  • Lerman, Julia (agosto de 2010), Programación de Entity Framework (2.ª  ed.), O'Reilly Media , pág.  912, ISBN 978-0-596-80726-9
  • Jennings, Roger (3 de febrero de 2009), Professional ADO.NET 3.5 with LINQ and the Entity Framework (1.ª  ed.), Wrox , pág.  672, ISBN 978-0-470-18261-1Archivado del original el 10/10/2012 , consultado el 06/02/2010.
  • Mostarda, Stefano (diciembre de 2010), Entity Framework 4.0 en acción (1.ª  ed.), Manning Publications , pág.  450, ISBN 978-1-935182-18-4
  • El marco de trabajo ADO.NET Entity Framework (en el Centro de desarrolladores de datos)
  • EntityFramework en GitHub
Obtenido de " https://en.wikipedia.org/w/index.php?title=Entity_Framework&oldid=1359100601 "