Consultas en EFCore
Entity Framework Core (EF Core) ofrece diversas formas de realizar consultas a la base de datos. A continuación, te mostraré ejemplos de diferentes tipos de consultas utilizando EF Core. Supongamos que tienes una entidad llamada Student
y un contexto de base de datos llamado SchoolContext
:
public class Student
{
public int StudentId { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
public class SchoolContext : DbContext
{
public DbSet<Student> Students { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
// Configuración de la cadena de conexión a la base de datos
optionsBuilder.UseSqlServer("TuCadenaDeConexion");
}
}
1. Consulta Básica:
using (var context = new SchoolContext())
{
var students = context.Students.ToList();
}
2. Filtrar Resultados:
using (var context = new SchoolContext())
{
var youngStudents = context.Students.Where(s => s.Age < 20).ToList();
}
3. Ordenar Resultados:
using (var context = new SchoolContext())
{
var sortedStudents = context.Students.OrderBy(s => s.Name).ToList();
}
4. Consulta con Proyección:
using (var context = new SchoolContext())
{
var studentNames = context.Students.Select(s => s.Name).ToList();
}
5. Consulta con Joins:
using (var context = new SchoolContext())
{
var studentCourses = context.Students
.Join(
context.Courses,
student => student.StudentId,
course => course.StudentId,
(student, course) => new
{
student.StudentId,
student.Name,
course.CourseName
})
.ToList();
}
6. Consulta con GroupBy:
using (var context = new SchoolContext())
{
var ageGroups = context.Students
.GroupBy(s => s.Age)
.Select(group => new
{
Age = group.Key,
Count = group.Count()
})
.ToList();
}
7. Consulta con Múltiples Condiciones:
using (var context = new SchoolContext())
{
var filteredStudents = context.Students
.Where(s => s.Age > 18 && s.Name.StartsWith("A"))
.ToList();
}
La variedad de operaciones y métodos proporcionados por EF Core te permite construir consultas complejas y eficientes según tus necesidades específicas.