Entity Framework 6Entity Framework 6

Entity Framework 6 (EF6) es un asignador relacional de objetos (O/RM) probado para .NET con muchos años de desarrollo de características y estabilización.Entity Framework 6 (EF6) is a tried and tested object-relational mapper (O/RM) for .NET with many years of feature development and stabilization.

Como O/RM, EF6 reduce la discordancia de impedancia entre los mundos relacionales y orientados a objetos, lo que permite a los desarrolladores escribir aplicaciones que interactúan con datos almacenados en bases de datos relacionales con objetos .NET fuertemente tipados que representan el dominio de la aplicación, y eliminar la necesidad de una gran parte del código de "mecánica" de acceso de datos que normalmente deben escribir.As an O/RM, EF6 reduces the impedance mismatch between the relational and object-oriented worlds, enabling developers to write applications that interact with data stored in relational databases using strongly-typed .NET objects that represent the application's domain, and eliminating the need for a large portion of the data access "plumbing" code that they usually need to write.

EF6 implementa muchas características de O/RM populares:EF6 implements many popular O/RM features:

  • Asignación de clases de entidad POCO que no dependen de ningún tipo de EFMapping of POCO entity classes which do not depend on any EF types
  • Seguimiento de cambios automáticoAutomatic change tracking
  • Resolución de identidad y unidad de trabajoIdentity resolution and Unit of Work
  • Carga diligente, diferida y explícitaEager, lazy and explicit loading
  • Traducción de consultas fuertemente tipadas con LINQ (Language Integrated Query)Translation of strongly-typed queries using LINQ (Language INtegrated Query)
  • Capacidades de asignación enriquecidas que incluyen compatibilidad con:Rich mapping capabilities, including support for:
    • Relaciones de uno a uno, de uno a varios y entre variosOne-to-one, one-to-many and many-to-many relationships
    • Herencia (tabla por jerarquía, tabla por tipo y tabla por clase concreta)Inheritance (table per hierarchy, table per type and table per concrete class)
    • Tipos complejosComplex types
    • Procedimientos almacenadosStored procedures
  • Un diseñador visual para crear modelos de entidad.A visual designer to create entity models.
  • Una experiencia "Code First" para crear modelos de entidad mediante la escritura de código.A "Code First" experience to create entity models by writing code.
  • Los modelos pueden generarse a partir de bases de datos existentes y luego editarse manualmente, o bien se pueden crear desde cero y luego usarse para generar nuevas bases de datos.Models can either be generated from existing databases and then hand-edited, or they can be created from scratch and then used to generate new databases.
  • Integración con modelos de aplicación de .NET Framework, incluido ASP.NET, y mediante enlace de datos, con WPF y WinForms.Integration with .NET Framework application models, including ASP.NET, and through databinding, with WPF and WinForms.
  • Conectividad de base de datos basada en ADO.NET y varios proveedores disponibles para conectarse a SQL Server, Oracle, MySQL, SQLite, PostgreSQL, DB2, etc.Database connectivity based on ADO.NET and numerous providers available to connect to SQL Server, Oracle, MySQL, SQLite, PostgreSQL, DB2, etc.

¿Debo usar EF6 o EF Core?Should I use EF6 or EF Core?

EF Core es una versión más moderna, ligera y extensible de Entity Framework que tiene capacidades y ventajas muy similares a EF6.EF Core is a more modern, lightweight and extensible version of Entity Framework that has very similar capabilities and benefits to EF6. EF Core es una reescritura completa y contiene muchas características nuevas que no están disponibles en EF6, aunque todavía carece de algunas de las funcionalidades más avanzadas de asignación de EF6.EF Core is a complete rewrite and contains many new features not available in EF6, although it also still lacks some of the most advanced mapping capabilities of EF6. Considere el uso de EF Core en las aplicaciones nuevas si el conjunto de características se ajusta a los requisitos.Consider using EF Core in new applications if the feature set matches your requirements. En Comparar EF Core y EF6 se examina el proceso de elección más detalladamente.Compare EF Core & EF6 examines this choice in greater detail.

Primeros pasosGet Started

Agregue el paquete NuGet de EntityFramework al proyecto o instale Entity Framework Tools para Visual Studio.Add the EntityFramework NuGet package to your project or install the Entity Framework Tools for Visual Studio. Luego, vea vídeos, lea tutoriales y consulte documentación avanzada, que le ayudarán a sacar el máximo partido de EF6.Then watch videos, read tutorials, and advanced documentation to help you make the most of EF6.

Versiones anteriores de Entity FrameworkPast Entity Framework Versions

Esta es la documentación de la versión más reciente de Entity Framework 6, aunque la mayor parte también se aplica a las versiones anteriores.This is the documentation for the latest version of Entity Framework 6, although much of it also applies to past releases. Vea Novedades y Versiones anteriores para obtener una lista completa de las versiones de EF y las características incluidas.Check out What's New and Past Releases for a complete list of EF releases and the features they introduced.