Middle
¿Cómo se realiza la carga de entidades relacionadas en C#?
sobes.tech AI
Respuesta de la IA
La carga de entidades relacionadas en C# a menudo se realiza mediante bibliotecas ORM, como Entity Framework Core. Los enfoques principales:
- Carga ansiosa (Eager): Los datos relacionados se cargan junto con la entidad principal en una sola consulta a la base de datos.
// Uso del método Include para carga ansiosa var postsWithComments = context.Posts .Include(p => p.Comments) .ToList(); - Carga explícita (Explicit): Los datos relacionados se cargan explícitamente después de obtener la entidad principal.
Para propiedades de navegación singulares se usa// Obtención de la entidad principal var post = context.Posts.Find(1); // Carga explícita de comentarios relacionados context.Entry(post) .Collection(p => p.Comments) .Load();.Reference()en lugar de.Collection().// Carga explícita del autor relacionado context.Entry(post) .Reference(p => p.Author) .Load(); - Carga perezosa (Lazy): Los datos relacionados se cargan automáticamente en el primer acceso a ellos. Requiere configuración de proxies o inyección de dependencias y es el comportamiento predeterminado en algunos ORM.
En Entity Framework Core, es necesario instalar el paquete// Con carga perezosa habilitada var post = context.Posts.Find(1); // Acceder a Comments dispara la carga int commentCount = post.Comments.Count;Microsoft.EntityFrameworkCore.Proxiesy llamar a.UseLazyLoadingProxies()en la configuración deDbContext. Las propiedades de navegación deben declararse comovirtual.
La elección del método depende del escenario de uso y del compromiso entre rendimiento (cantidad de consultas) y volumen de datos cargados.