Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

190
Vistas
Obtenga una lista de todos los alias y la unión con el nombre

Digamos que tengo las siguientes entidades.

 class Product { public int Id { get; set; } public string Name { get; set; } } class ProductAlias { public int ProductId { get; set; } public string Alias { get; set; } }

Dado un ID de producto, ¿cómo podría crear una lista de todos los alias para ese producto que incluya el Name del producto en una sola consulta?

No sé si puedo hacer algo como lo siguiente. Esta sintaxis no funciona porque Union() no toma una expresión lambda.

 DbContext.Products .Where(p => p.Id == productId) .Select(p => p.Name) .Union(p => p.ProductAliases.Select(a => a.Alias)) .ToList();
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Una las dos tablas en Id y ProductId , seleccione todos los atributos necesarios ( Id , Name , Alias ) y filtre en Id .

 products .Join(aliases, p => p.Id, a => a.ProductId, (p,a) => new { p.Name, p.Id, a.Alias}) .Where(p => p.Id == productId);

En otra forma:

 (from p in products join a in aliases on p.Id equals a.ProductId select new { p.Name, p.Id, a.Alias }) .Where(p => p.Id == productId);

El resultado (con LINQ2Object para la prueba, pero debería funcionar también con LINQ2SQL):

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Denunciar

0

Prueba lo siguiente:

 var products = DbContext.Products .Where(p => p.Id == productId); products .Select(p => p.Name) .Union(products.SelectMany(p => p.ProductAliases.Select(a => a.Alias))) .ToList();
over 4 years ago · Santiago Trujillo Denunciar

0

Puede hacer el equivalente a un SQL Server unpivot como este

 DbContext.Products .Where(p => p.Id == productId) .SelectMany(p => p.ProductAliases.Select(a => a.Alias).Append(p.Name)) .ToList();
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda