🎃 Grandes descuentos en libros en línea, eformaciones y vídeos*. Código CALABAZA30. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. C# 10
  3. LINQ to Entities
Extrait - C# 10 Desarrolle aplicaciones Windows con Visual Studio 2022
Extractos del libro
C# 10 Desarrolle aplicaciones Windows con Visual Studio 2022
4 opiniones
Volver a la página de compra del libro

LINQ to Entities

Introducción

Entity Framework proporciona las clases necesarias para ejecutar consultas y extraer los registros almacenados en la base de datos. Las consultas se pueden hacer usando LINQ to Entities o Entity SQL.

Para ilustrar este capítulo, se modifica el formulario MailServerSettings para mostrar un control ComboBox que contiene las configuraciones almacenadas en la base de datos y un botón que permite hacer copias de seguridad de las modificaciones:

images/cap20_img_01.png

Extraer datos

Las consultas se definen con objetos de tipo DbSet<T> y deben ejecutarse dentro del contexto de las entidades inicializadas en la clase Program.cs:

var builder = new HostBuilder() 
   .ConfigureServices((hostContext, services) => 
   { 
       services.AddDbContext<SelfMailerContext>(options => 
       { 
           options.UseSqlServer("Server=localhost\\SQLEXPRESS; 
Database=SelfMailer;Trusted_Connection=True;"); 
       }); 
   }); 
var host = builder.Build(); 

El contexto puede, entonces, recuperarse e inyectarse en la aplicación:

using (var serviceScope = host.Services.CreateScope()) 
{ 
   var services = serviceScope.ServiceProvider; 
   Context = services.GetRequiredService<SelfMailerContext>(); 
} 

Para simplificar, se agrega la variable estática Context a la clase Program para que esté disponible globalmente.

public static SelfMailerContext Context { get; set; } 

1. La extracción simple

Para rellenar el control ComboBox del formulario con las configuraciones almacenadas en la base de datos, las entidades se pueden recuperar directamente desde el contexto:

var query = Program.Context.MailServers; 

Se recuperan...

Añadir, modificar y eliminar datos

Leer, buscar, filtrar y ordenar los registros de la base de datos solo representa una parte de las necesidades de una aplicación. Añadir, modificar y suprimir datos son acciones habituales realizadas sobre un conjunto de datos.

1. Añadir datos

La adición de nuevos registros se hace creando una nueva entidad del tipo deseado. A continuación, basta con guardar sus propiedades y añadirla a la colección de entidades del contexto:

MailServer newMailServer = new MailServer();   
newMailServer.Host = this.Host.Text;   
newMailServer.Username = this.Username.Text;   
newMailServer.Password.Value = this.Password.Text;   
newMailServer.Password.AllowSave = true;   
Program.Context.MailServers.Add(newMailServer); 

La adición de la nueva entidad a la colección del contexto se puede efectuar antes o después de la asignación de las propiedades.

La nueva entidad creada se puede relacionar con una entidad existente según las relaciones. Para leer la entidad newMailServer creada anteriormente con una entidad Sender es preciso agregarla a la colección de entidades relacionadas:

Sender newSender = new Sender();   
Program.Context.Senders.Add(newSender);   
newSender.MailServer.Add(newMailServer); 

2. Modificar datos

La modificación de una entidad...