Esta presentación fue parte del evento Dev @ Nights (https://www.youtube.com/watch?v=6ysRCkvmpZo) en el que expliqué cómo conectarse a una base de datos de MySQL utilizando Entity Framework Core y aplicándolo a un proyecto web de ASP .NET Core y un proyecto móvil de Xamarin
Acceso a MySQL con EF Core y ASP.NET Core desde Xamarin
1. Accediendo a una base de datos
de MySQL con Entity Framework
Core desde ASP .NET Core y
Xamarin
Luis Beltrán
#DevNights 14 de Junio de 2019
2. Luis Beltrán
Microsoft MVP en Tecnologías de
Desarrollador
Investigador y estudiante de doctorado en la
Universidad Tomás Bata en Zlín, República
Checa.
Docente en el Tecnológico Nacional de
México en Celaya.@darkicebeam
luis@luisbeltran.mx
3. Sistema gestor de base de datos relacionales
Licencia dual: GNU / Comercial (Oracle)
Es de código abierto (open-source) pero es patrocinada por una empresa privada
Versión actual: 8.0.16
Es uno de los SGBD más populares que existen (sobre todo en ambientes web)
4. Características
Relacional (integridad referencial)
Cross-platform: Linux, Windows, MacOS
Transaccional
Replicación, búsqueda e indexación FULLTEXT
Motores de almacenamiento MyISAM e InnoDB
5. MyISAM
No provee integridad de datos ni transacciones
Desempeño más rápido en operaciones Select e Insert
Al no manejar bloqueo de registros, puede haber un problema de desempeño al
realizar Updates
Si una tabla “crashea”, el DBA debe reparar manualmente la tabla o reconstruirla
InnoDB
Maneja el principio ACID: Atomicidad, Consistencia, Aislamiento y Durabilidad en las
transacciones:
Atomicidad: Todo o Nada
Consistencia: Se garantiza que las transacciones no se quedan en un estado intermedio
Aislamiento: Todas las transacciones son independientes entre sí
Durabilidad: Se garantiza que la base de datos da seguimiento a los cambios pendientes y
estos se realizarán en algún momento
Soporta transacciones, llaves foráneas y bloqueo a nivel de registro
Si una tabla “crashea”, es reparada automáticamente gracias al log de transacciones
El rendimiento es menor debido al overhead en el procesamiento
6.
7. Una versión extensible, ligera, multiplataforma y open-source de Entity Framework
ORM (Object-Relational Mapper) que permite interactuar con una base de datos
utilizando objetos .NET (clases). En el caso de proyectos web, típicamente esto se hace a
través de modelos y controladores.
Soporta varios motores de bases de datos:
SQL Server
SQLite
CosmosDB
PostgreSQL
MySQL
Lista completa disponible en https://docs.microsoft.com/en-us/ef/core/providers/index
8. Estrategia de desarrollo Code-First
Agregar los paquetes Nuget Microsoft.EntityFrameworkCore y
Microsoft.EntityFrameworkCore.Tools al proyecto.
Agregar el paquete del proveedor específico de base de datos.
Crear los modelos (clases)
Generar una clase de contexto (DbContext) utilizando la cadena de conexión
Utilizar los comandos Add-Migration y Update-Database
11. ¡Gracias por su atención!
luis@luisbeltran.mx
https://youtube.com/user/darkicebeam
https://slideshare.net/icebeam
@darkicebeam
icebeam7
luisantoniobeltran
luisbeltran.mxTomás Bata University in Zlín
Tecnológico Nacional de México en Celaya