Ilustración digital que representa la relación entre productos y categorías en una base de datos usando EF Core y SQL Server

🧱 Cómo relacionar tablas en EF Core con SQL Server: productos y categorías paso a paso

Si estás buscando cómo relacionar tablas en EF Core con SQL Server, este artículo es para ti. Aquí aprenderás paso a paso a definir claves foráneas, insertar datos relacionados y consultarlos eficientemente usando ..Include()

En el artículo anterior, aprendiste cómo insertar múltiples registros de forma eficiente con BulkInsert en una aplicación de consola utilizando EF Core y SQL Server.

Ahora vamos un paso más allá: aprenderás a relacionar tablas en Entity Framework Core con SQL Server, definir claves foráneas y consultar datos conectados.

→ Puedes ver este ejemplo en vivo en .NET Fiddle para probar el código.


🔗 Relaciones uno a muchos en EF Core y SQL Server

Una relación 1:N (uno a muchos) significa que una entidad puede estar asociada a múltiples registros de otra entidad. Por ejemplo:

  • Una categoría puede contener muchos productos
  • Cada producto pertenece a una sola categoría

EF Core representa esta relación con propiedades de navegación y claves foráneas, respetando las convenciones de C#.


📋 Entidades relacionadas en EF Core y SQL Server

Para representar una relación uno a muchos en EF Core y SQL Server, definimos dos clases: y . Cada producto tiene una clave foránea que lo asocia con una categoría, y la categoría contiene una lista de productos. EF Core puede inferir esta relación automáticamente gracias a sus convenciones.CategoriaProducto

Clases C# Categoría y Producto con relación uno a muchos en EF Core y SQL Server
Fragmento de código que muestra cómo EF Core representa una relación 1:N entre entidades usando propiedades de navegación.

⚙️ Configuración de DbContext con SQL Server

El siguiente fragmento muestra cómo configurar el contexto de EF Core para trabajar con SQL Server. En este ejemplo, el método establece la cadena de conexión y define las entidades que forman parte del modelo.OnConfiguring()

Clase AppDbContext configurada con SQL Server en un proyecto EF Core
Clase de contexto que conecta las entidades Categoria y Producto a la base de datos SQL Server usando EF Core.

Para propósitos de prueba, puedes crear la base de datos automáticamente con:

context.Database.EnsureCreated();

Esto evita usar migraciones y es perfecto para prototipos rápidos.


📥 Insertar y consultar relaciones en EF Core con SQL Server usando .Include()

Una vez configurado el contexto y definidas las entidades, el siguiente paso es insertar datos relacionados y luego consultarlos juntos. Esto se logra con el método , que se conoce como carga ansiosa (eager loading). Permite obtener datos relacionados en una sola consulta—por ejemplo, obtener todas las categorías e incluir sus productos relacionados.Include

Ejemplo de inserción de categoría con productos y consulta usando Include en EF Core con SQL Server
Inserción de una categoría con productos y consulta con .Include() para obtener datos relacionados en una sola operación.

🔍 Beneficios de usar .Include() en EF Core con SQL Server.

EF Core no carga automáticamente las entidades relacionadas al hacer una consulta. Si omites .Include(), obtendrás los productos sin su categoría asociada, o viceversa.

Usar .Include() es esencial cuando necesitas mostrar datos relacionados en una interfaz o realizar cálculos entre tablas.


⚠️ Errores comunes al definir relaciones en EF Core con SQL Server

  • ❌ Olvidar la clave foránea () en la clase .CategoriaIdProducto
  • No usar . Include() al consultar.
  • ❌ Aplicar SaveChanges() antes de establecer la relación.

✅ Conclusión sobre relaciones en EF Core con SQL Server

  • Aprendiste a establecer una relación uno a muchos en EF Core con SQL Server
  • Configuraste para trabajar con SQL ServerDbContext
  • Consultaste datos relacionados usando .Include()
  • Identificaste errores comunes y cómo evitarlos

Al principio puede parecer complejo, pero con práctica se vuelve muy natural.


📌 ¿Qué sigue después de relacionar tablas en EF Core?

Ahora que sabes cómo conectar tus entidades, el siguiente paso es aprender a filtrar eficientemente grandes volúmenes de datos relacionados. Aquí es donde entra en juego , una extensión de alto rendimiento para aplicar filtros desde listas.WhereBulkContains()


¿Cómo filtrar entidades contenidas de una lista existente con Entity Framework usando WhereBulkContains?
Banner promocional sobre el método WhereBulkContains, utilizado para filtrar eficientemente registros desde listas en EF Core.
Aprende a filtrar desde listas con  en EF Core.WhereBulkContains()

👉 Ver más sobre WhereBulkContains()


📚 Recursos útiles sobre EF Core y SQL Server

¿Te fue útil? Guarda este artículo, compártelo y síguenos para más optimizaciones con EF Core.

Scroll to Top