Saltar a contenido

Quickstart

Definición

Entity Framework Core es la nueva versión de Entity Framework después de EF 6.x. Es de código abierto, liviano, extensible y una versión multiplataforma de la tecnología de acceso a datos de Entity Framework.

Entity Framework es un marco de asignación de objetos/relacional (O/RM). Es una mejora de ADO.NET que brinda a los desarrolladores un mecanismo automatizado para acceder y almacenar los datos en la base de datos.

EF Core está diseñado para usarse con aplicaciones .NET Core. Sin embargo, también se puede utilizar con aplicaciones basadas en framework estándar .NET 4.5+.

figura 1

Para más info consultar EF core

Por qué usamos EF core

EF core es una herramienta potente, que nos permite interactuar "fácilmente" con la base de datos. Pero no todo es color de rosas, Ef core tiene algunas desventajas en su utilización

Pro

  1. modelado de datos: Ef core nos permite realizar el modelado de nuestros datos (Tablas) a partir de clases de c# o crear nuestro modelo de clases a partir de una base de datos.
  2. Escritura Performante: Ef core permite realizar operaciones de escritura en batch.
  3. Tracking: Ef Core monitorea los cambios que ocurren en un objeto trackeado, por lo que el cambio en este se convierte en un update actualizando solo el/los campos que sufrieron cambios.
  4. Seguridad: Todas las operaciones de escritura son transaccionales, por lo que la falla en alguna operación realiza automáticamente un rollback.
  5. Migrations: Las migraciones nos permiten manipular y tener un versionado de nuestra base de datos. Teniendo la posibilidad de crear y actualizar la estructura de tablas o incluso volver a versiones anteriores de nuestro modelo en caso de error.

Contras

  1. Abstracción: Ef core, se coloca en medio entre las operaciones y la base de datos, por lo que se pierde el control de las operaciones que se estan realizando.
  2. Curva de aprendizaje: No es demasiado complicado utilizar Ef core, pero si requiere de un grado de expertise en manejo de objetos y base de datos para poder trabajar eficientemente con la herramienta.
  3. Queries: Ef core utiliza LINQ para realizar las consultas. Las consultas con LINQ no son performantes, los últimos años se realizaron grandes avances en las consultas con algunas técnicas de paralelización y caching pero no mejora significativamente, por lo que es recomendable no utilizar Ef core para realizar consultas.

Cuándo usar Ef core

Recomendamos utilizar Ef core para:

  1. Generar el modelo de base de datos: Ef core permite crear la base de datos a partir del modelo de clases (Code First) o crear nuestras clases a partir de una base de datos existente (Database First).
  2. Escritura: Realizar operaciones de escritura (INSERT, UPDATE, DELETE). EF core tiene su gran virtud en el manejo de los objetos (Entidades) con las operaciones de tracking, transactional y save change.

Para ver como trabajar las operaciones de escritura ver