Entity Framework Core

Hola amigos. En este maravilloso día de mayo, continuamos trabajando y hoy queremos hablar sobre el hecho de que en mayo OTUS lanza el curso "C # Developer" que todos adoran , así como un curso C # ASP por separado . NET Core . Tradicionalmente, en la víspera del inicio de los cursos, comenzamos a publicar material útil. Vamos.




Introducción


La mayoría de las aplicaciones modernas de ASP NET Core usan Entity Framework Core. Entity Framework Core es una tecnología para acceder a bases de datos de Microsoft. Le permite interactuar con el DBMS utilizando entidades, es decir, clases y objetos NET, en lugar de tablas de base de datos. Esta es la herramienta ORM más famosa y funcional en C #. ORM es un mapeo relacional de objetos: mapeo de datos a objetos reales.

Por ejemplo, si un desarrollador trabaja directamente con bases de datos, un programador debe pensar en conectarse, preparar los parámetros SQL y SQL, cómo enviar consultas y transacciones. Y con la ayuda de Entity Framework Core, todo esto se hace automáticamente: el desarrollador trabaja directamente con las clases NET.

Enfoques ORM


ORM tiene varios enfoques.

El primero es el Código Primero. Implica que primero se escribe el código C # y luego se crea una base de datos con este código. Para este enfoque, es muy importante definir las clases del modelo o entidad que se almacenarán en la base de datos, describirlo en clases de C # como modelo y escribir una clase de contexto que funcione con la base de datos utilizada. El enfoque de Código Primero es el más utilizado por los programadores de C #.

Segundo enfoque- Database-First- es adecuado para aquellos que conocen bien SQL, pero en este caso no es necesario conocer bien C #. Primero se crea la base de datos, luego se genera el modelo de base de datos EDMX. Este XML en el archivo .edmx contiene información sobre la estructura de la base de datos, el modelo de datos y su correlación entre sí. Visual Studio tiene un diseñador gráfico con el que puede trabajar con .edmx

Model-First: este es el tercer enfoque ORM. A menudo los arquitectos lo usan, ya que con este enfoque no se puede conocer la sintaxis de SQL o C #. En este caso, primero se crea un modelo gráfico EDMX, en este momento se crean clases de modelo C # en segundo plano y luego se genera una base de datos basada en el diagrama EDMX.

Entity Framework Core Models


Todas las tablas de bases de datos se definen en Entity Framework como clases de modelos o entidades, como regla, de acuerdo con el principio de 1 tabla, por ejemplo, usuarios, - 1 clase en NET, por ejemplo, Usuario. Dichos pares se denominan convenciones y se definen en la clase de contexto de datos como conjuntos DbSet y este enfoque funciona de forma predeterminada.

Aunque existen mecanismos como la API Fluent y las anotaciones de datos, es posible anular estas convenciones o reglas de configuración adicionales.

Migraciones


Durante el proceso de desarrollo, es bastante probable que la clase de modelo de Entity Framework haya cambiado, y debe eliminar la base de datos para mantener el cumplimiento del modelo. Pero cuando elimina una base de datos, todos los datos de ella también se eliminan.

Para guardar datos cuando el modelo cambia, hay una función de migración en Entity Framework Core. Le permite aplicar consistentemente cambios de esquema a la base de datos para sincronizarlo con el modelo de datos.

En la migración, hay operaciones que le permiten eliminar, agregar columnas y tablas, claves foráneas, cambiar la configuración de las columnas, agregar, eliminar y cambiar datos, etc. Cuando crea una migración, se crea automáticamente una clase donde se realizan las operaciones que son necesarias para aplicar la migración Up () y devolverla al método Down ().

LINQ


LINQ está inextricablemente vinculado al Entity Framework en NET. LINQ es una consulta integrada en el lenguaje o una consulta intralingual: esta es una tecnología que es un conjunto de funciones en NET que le permite escribir consultas estructuradas de bases de datos.

Para trabajar con Entity Framework Core utiliza la tecnología LINQ to Entities. LINQ usa expresiones C # similares a SQL para recuperar datos de una base de datos. Cualquier base de datos relacional funciona a través de consultas SQL, y Entity Framework Core traduce LINQ a expresiones de Entidades en consultas SQL que son comprensibles para la base de datos utilizada.

Conclusión


Por lo tanto, revisamos brevemente las capacidades de Entity Framework Core. Como viste, es realmente muy poderoso, y tanto que el programador que trabaja con él ni siquiera necesita saber SQL. Y Entity Framework Core, legítimamente, ocupa el primer lugar entre los ORM en el mundo NET.







All Articles