Está en la página 1de 8

ORM

Qué es un ORM - YouTube


ORM (Object Relational Mapper) es una técnica que nos permite acceder a nuestra base de
datos mediante el paradigma de programación orientada a objetos.

Entity Framework
Persist and retrieve relational data with Entity Framework Core - Learn | Microsoft Docs
Es un ORM para la plataforma .NET.

Comparando EF6 & EF Core:


EF Core ofrece nuevas funciones que no se implementarán en EF6. Sin embargo, no todas
las características de EF6 están implementadas actualmente en EF Core.

Entity Framework 6 (version actual)


Es un ORM para .NET y con soporte para .NET Core. EF6 es estable pero ya
no se está desarrollando activamente.

Entity Framework Core


Es un moderno Object Database Mapper para .NET.
Aprendiendo EF Core
CRUD with a .NET 6 Web API & Entity Framework Core 🚀 Full Course - YouTube

Model
Data Access es realizado mediante un modelo. Un modelo se compone de clases de
entidad y un objeto de contexto que representa la sección con la base de datos. Un objeto
de contexto permite querying data y save data.
Más información

Se usa EF Migrations para crear una base de datos a partir de un modelo.=

Querying
Entity Framework Core utiliza Language-Integrated Query (LINQ) para consultar datos en la
base de datos. Utiliza el contexto derivado y las clases de entidad para hacer referencia a
los objetos de la base de datos. EF Core pasa una representación de la consulta LINQ al
database provider. Los proveedores de bases de datos, a su vez, lo traducen al lenguaje de
consulta específico de la base de datos.
Más información

Save Data
Los datos se crean, eliminan y modifican en la base de datos utilizando instancias de sus
clases de entidad Cada instancia de contexto tiene un ChangeTracker que es responsable
de realizar un seguimiento de los cambios que deben escribirse en la base de datos. A
medida que realiza cambios en las instancias de sus clases de entidad, estos cambios se
registran en ChangeTracker y luego se escriben en la base de datos cuando llama a
SaveChanges.
Más información

Migrations
Code First Migrations significa crear en base al modelo una base de datos. Los modelos de
datos cambian a medida que se implementan las características: se agregan y eliminan
nuevas entidades o propiedades, y los esquemas de la base de datos deben cambiarse en
consecuencia para mantenerse sincronizados con la aplicación. La función de migraciones
en EF Core proporciona una forma de actualizar de forma incremental el esquema de la
base de datos para mantenerlo sincronizado con el modelo de datos de la aplicación
mientras se conservan los datos existentes en la base de datos.
Guia

Create a Model
Podemos personalizar algunas configuraciones para nuestras entidades, esto lo hacemos
agregando un método en nuestro contexto llamando OnModelCreating( ModelBuilder
modelBuilder )

● OnModelCreating: configura aún más el modelo que se detectó por convención a


partir de los tipos de entidad expuestos en las propiedades DbSet<TEntity> en su
contexto derivado. El modelo resultante puede almacenarse en caché y reutilizarse
para instancias posteriores de su contexto derivado.
● ModelBuilder: Proporciona una API para configurar un IMutableModel que define la
forma de tus entidades, las relaciones entre ellas y cómo se asignan a la base de
datos.

Relationship
Una relación define como dos entidades se relacionan. En base de datos relaciones, esto es
representado como foreign key constraint.

● Indirect Many to Many relationship

Keyless
Un modelo de EF Core puede contener entidades sin clave, que se pueden usar para realizar
consultas de bases de datos en datos que no contienen valores clave.
Entity Framework Core Tools
Permite desarrollar en design-time, es decir, se trabaja mientras se está creando la
aplicación. Se utilizan principalmente para administrar las migraciones y para montar un
DbContext y tipos de entidad mediante la ingeniería inversa del esquema de una base de
datos.

Se puede instalar de las siguientes maneras:

Package Manager Console


Instalar mediante el manejador de paquetes.

.NET Core CLI


Instalar mediante el CLI .NET Core. Se recomienda realizarlo de esta manera si estás
trabajando en Visual Studio.

Instalando

dotnet tool install –global dotnet-ef

● dotnet: indica el CLI.NET


● tool: indica que instalaremos un tool
● install: es un comando para instalar tools
● dotnet-ef: Entity Framework Tool
● –global: Instalar globalmente

dotnet ef Comandos:
Database
● dotnet ef database update: Actualiza la base de datos a la última migración o una
migración específica.

Migrations
● dotnet ef migrations add <name>: Agrega una nueva migracion
Microsoft.EntityFramework
DbContext Class
Guia para usar DbContext
representa una sección con la base de datos, se usa para consultar y guardar instancias de
tu entidades. DbContext es una combinación de los patrones Unit of Work y Repositorio.

DbSet<TEntity> Class
Representa una Entidad
Microsoft.EntityFrameworkCore.Migrations
Guia

Migration Class
Una clase base heredada por cada migración de EF Core.

Métodos
Up
Down

MigrationBuilder Class
Microsoft.EntityFrameworkCore.Design
Componentes en design-time compartidos para Entity Framework Core Tools.
Pasos
// 1 - Agregar una conexion string en el archivo appsettings.json
// 2 - Instalar dotnet en la consola con el siguiente comando - dotnet tool install --global
dotnet-ef
// https://docs.microsoft.com/en-us/dotnet/core/tools/
// dotnet - es un comando de .Net, es como npm
// dotnet tool install - instala algun .NET Tools en tu computadora

// https://docs.microsoft.com/en-us/ef/core/cli/dotnet
// dotnet-ef - (CLI) para Entity Framework Core realizan tareas de desarrollo en
tiempo de diseño. Por ejemplo, crear migrations

// 5 - registrar nuestro DbContext en Program.cs


// 6 - Code First Migration: es crear en base al modelo una base de datos.
// https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/migrations?
view=aspnetcore-6.0
// Compilar la aplicación
// Entramos en la consola
// Ejecutamos el comando para entrar a nuestra carpeta - cd ./SuperApi
// Realizar migración con el comando - dotnet ef migrations add CreateInitial
// Crear y actualizar nuestra base de datos - dotnet ef database update
// 7 - Agregar un constructor de DataContext al Controlador

// -------------- Agregamos nuestro dbContext, agregamos un callback


builder.Services.AddDbContext<DataContext>(options => {
// Estamos accediendo al valor de la propiedad "DefaultConnection" de nuestro
// archivo appsettings.json
string connectionStr = builder.Configuration.GetConnectionString("DefaultConnection");
options.UseSqlServer(connectionStr);
});

También podría gustarte