Está en la página 1de 22

Conexión a BD con

EntityFramework

Alexander Sencion 18-0353


Alberto Avila 19-0870
Entity Framework 

• Entity Framework Core es un moderno mapeador de bases de datos de


objetos para .NET. Admite consultas LINQ, seguimiento de cambios,
actualizaciones y migraciones de esquemas. EF Core funciona con muchas
bases de datos, como SQL Database (local y Azure), SQLite, MySQL,
PostgreSQL y Azure Cosmos DB. 
• Entity Framework (EF) es un marco de mapeo objeto-relacional (ORM) de
código abierto para ADO.NET. Originalmente se distribuyó como parte
integrante de .NET Framework. A partir de la versión 6 de Entity
Framework, se suministra por separado de .NET Framework.
Porque EF Database
first y Codefirst?
Entity
• El enfoque Database First de
Entity Framework permite a
los desarrolladores crear
aplicaciones de software a

Framework
partir de sus bases de datos
existentes. Usted se conecta a
una base de datos existente y
Visual Studio y EF construyen

Database first
un modelo de objetos de datos
y la aplicación completa para
usted con muy poco código. 
Let's go to
coding
Code First
By: Entity Framework Core
Temas a continuacion:
◈ Que es CodeFirst
◈ Instalación de EF
◈ Ejemplo EF Code-First
◈ Inicialización DB en Código
🞚 Rollback con Update-Database
◈ Costumbres de CodeFirst EF
◈ Data Annotation
◈ Relaciones en CodeFirst EF
🞚 One to One
🞚 One to Many
🞚 Many to Many
Qué es Code First?
Entity Framework introdujo el enfoque Code-First
con Entity Framework 4.1. Code-First es
principalmente útil en diseño controlado por
dominio . En el enfoque Code-First, usted se enfoca
en el dominio de su aplicación y comienza a crear
clases para su entidad de dominio en lugar de
diseñar su base de datos primero y luego crear las
clases que coincidan con el diseño de su base de
datos. La siguiente figura ilustra el enfoque de
código primero.
Instalación de Nos dirigimos al Nuget Packages Manager para instalar los
Entity Framework componentes a continuación.
Instalación de Entity Framework
Ejemplo de Code First

◈ En lugar de diseñar primero las tablas de la base de datos, comencemos a


crear clases para el dominio de nuestra escuela, cuando sea necesario.
Primero, cree las clases Studenty donde cada uno esté asociado con uno ,
como se muestra a continuación. Esto se llama una relación de uno a muchos.
Clases Dominio
Dentro del App.config o appsettings.json se debe especificar el connection string de
la base de datos. Esto es necesario para que EF se conecto a la DB especificada
Inicialización de pueda realizar cambios sobre ella.

Base de datos Connection String: "Server=(localdb)\\


mssqllocaldb;Database=SistemaNomina;Trusted_Connection=True;M
ultipleActiveResultSets=True"
Inicialización de ◈ Dentro del Startup.cs se debe especificar el nombre del connection string. Esto

Base de datos hará que EF se conecte a la DB una vez corramos la aplicación/


Inicialización de Base de datos
Enable-Migrations: habilita la migración en su proyecto creando una clase de
configuración.

Add-Migration: crea una nueva clase de migración según el nombre especificado con los
métodos Up() y Down().

Update-Database: ejecuta el último archivo de migración creado por el comando Add-


Migration y aplica los cambios al esquema de la base de datos.
RollBack con Update
databse
◈ Para realizar un rollBack a una migración
anterior se debe correr el comando Update-
Database apuntando al nombre de la
migración deseada. Nótese que cada vez que
se realiza un Add-Migration se le espefica un
nombre único a dicha migración. Puede
realizar un RollBack a cualquier migración
deseada.
Costumbres de EF
Data
annotations
Data
annotations
Relaciones en Entity
Framework (One to One)
Una relación de uno a cero o uno
ocurre cuando una clave principal de
una tabla se convierte en PK y FK en
otra tabla en una base de datos
relacional como SQL Server. Por lo
tanto, debemos configurar las entidades
anteriores de tal manera que EF cree
las tablas Students y en la base de
datos y haga que la columna en la tabla
sea PrimaryKey (PK) y la columna en
la tabla como PK y ForeignKey
Relaciones en Entity
Framework (One to Many)
En el ejemplo anterior, la
Studententidad incluye una propiedad
de navegación de referencia del
Gradetipo y la Grade clase de entidad
incluye una propiedad de navegación
de colección del
ICollection<Student>tipo que da como
resultado una relación de uno a varios.
Relaciones en Entity
Framework (Many to Many)

Debe incluir una propiedad de


navegación de colección en ambos
extremos. Por ejemplo, la clase Student
debe tener una propiedad de
navegación de colección de tipo
Course, y la clase Course debe tener
una propiedad de navegación de
colección de tipo Student para crear
una relación de muchos a muchos entre
ellos

También podría gustarte