Curso de EntityFrameworkCore – Parte IV – Operaciones CRUD – SELECT

Operaciones CRUD – SELECT

Hola de nuevo, continuamos con este mini curso de EntityFrameWorkCore, por si aun no has leído las entradas anteriores te las dejo para que te pongas al día:

Llegados a este punto ya tenemos todo listo para empezar a trabajar con los datos de nuestra base de datos de SQL Server. Vamos a realizar lo que conocemos en programacion como CRUD (leer, insertar, actualizar y eliminar) datos de la base de datos.

LEER TODOS LOS RGISTROS DE LA BASE DE DATOS

using (var db = new ApplicationDbContext())
{
   // TODOS LOS REGISTROS DE LA TABLA CURSO
   var cursos = db.Curso.AsNoTracking();
   foreach (var curso in cursos)
   {
       Console.WriteLine(curso.Titulo);
   }
}

En este primer ejemplo, lo que hacemos es traernos todos los registros dela tabla Curso, almacenarlos en la variable cursos y posteriormente recorrer dicha variable mediante un bucle foreach, mostrando por consola el titulo de cada registro, en este caso mostramos solo el título, pero podríamos acceder a todos los campos sin ningún problema.

LEER LOS REGISTROS, EN UNA RELACION DE UNO A UNO

using (var db = new ApplicationDbContext())
{
    var cursos = db.Curso.Include(p => p.Precio).AsNoTracking();
    foreach (var curso in cursos)
    {
        Console.WriteLine(curso.Titulo + " - Precio promocion: " + curso.Precio.Promocion);
    }
}

En este segundo ejemplo, vamos a trabajar con la relación OneToOne entre las tablas Curso y Precio, para ello estamos accediendo a los campos de la tabla Curso y además estamos agregando mediante Include todos los registros de la tabla Precio, podemos hacer esto ya que si recuerdas nuestro modelo Curso, habíamos agregado una referencia a la tabla Precio de esta manera: public Precio Precio { get; set; }

Los registros de la consulta los almacenamos en la variable cursos y posteriormente recorremos dicha variable mediante un bucle foreach, mostrando por consola el titulo de cada registro y su correspondiente Precio.

LEER LOS REGISTROS, EN UNA RELACION DE UNO A MUCHOS

using (var db = new ApplicationDbContext())
{
    var cursos = db.Curso.Include(c => c.ListaComentarios).AsNoTracking();
    foreach (var curso in cursos)
    {
        Console.WriteLine(curso.Titulo);
        foreach (var comentario in curso.ListaComentarios)
        {
            Console.WriteLine("--- " + comentario.ComentarioTexto);
        }
    }
}

En este tercer ejemplo, vamos a trabajar con la relación OneToMany entre las tablas Curso y Comentario, para ello estamos accediendo a los campos de la tabla Curso y además estamos agregando mediante Include todos los registros de la tabla Comentario, podemos hacer esto ya que si recuerdas nuestro modelo Curso, habíamos agregado una referencia a la tabla Comentario de esta manera: public ICollection<Comentario> ListaComentarios { get; set; }

Los registros de la consulta los almacenamos en la variable cursos y posteriormente recorremos dicha variable mediante dos bucles foreach anidados, en el bucle externo recorremos la variable cursos y en el bucle interno accedemos a la propiedad ListaComentarios, la cual en cada iteración del bucle externo contendrá una lista con todos los comentarios de dicho Curso.

LEER LOS REGISTROS, EN UNA RELACION DE MUCHOS A MUCHOS

using (var db = new ApplicationDbContext())
{
    var cursos = db.Curso.Include(c => c.InstructorLink).ThenInclude(ci => ci.Instructor);
    foreach (var curso in cursos)
    {
        Console.WriteLine(curso.Titulo);
        foreach (var insLink in curso.InstructorLink)
        {
            Console.WriteLine("*** " + insLink.Instructor.Nombre);
        }
    }
}

En este cuarto ejemplo, vamos a trabajar con la relación ManyToMany entre las tablas Curso e Instructor, para ello estamos accediendo a los campos de la tabla Curso y además estamos agregando mediante Include todos los registros de la tabla Instructor, podemos hacer esto ya que si recuerdas nuestro modelo Curso, habíamos agregado una referencia a la tabla CursoInstructor de esta manera: public ICollection<CursoInstructor> InstructorLink { get; set; }

Los registros de la consulta los almacenamos en la variable cursos y posteriormente recorremos dicha variable mediante dos bucles foreach anidados, en el bucle externo recorremos la variable cursos y en el bucle interno accedemos a la propiedad InstructorLink, la cual en cada iteración del bucle externo contendrá una lista con todos los instructores asociados a cada Curso.

En la próxima entrega de este mini curso continuaremos creando nuestro CRUD para insertar, eliminar y actualizar datos de nuestra base de datos.

Si te ha gustado comparte por favor, nos ayudas mucho!

Jesús Jiménez

  • Share:

Deja un comentario

Your email address will not be published.

    Enviar un mensaje




    Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

    ACEPTAR
    Aviso de cookies
    Call Now Button