Que necesito para convertir a SQL de la Consulta en Linq:

SELECT
    SUM([ArticleAmount]) as amount
    ,[ArticleName]
FROM [DB].[dbo].[OrderedArticle]

group by articlename

order by amount desc

He probado el siguiente código pero me da un error al «una.ArticleName» que dice que una definición de «ArticleName» sería falta.

var sells = orderedArt
            .GroupBy(a => a.ArticleName)
            .Select(a => new {Amount = a.Sum(b => b.ArticleAmount),Name=a.ArticleName})
            .OrderByDescending(a=>a.Amount)
            .ToList();

Tiene a alguien de usted y la idea de cómo solucionar este problema?

Gracias por su ayuda!

  • Es ArticleName una columna en orderedArt? Me gustaría descargar LINQPad. Se puede convertir de SQL para Linq así que usted puede poner la consulta en que y tire de la correcta Linq código.
  • Sí, ArticleName es una columna en orderedArt. El error se produce sólo en la selección. El GroupBy obras. Voy a tratar de LINQPad, gracias por la sugerencia 🙂
  • Me gustaría dar LINQPad una oportunidad. Al menos debería apuntar en la dirección correcta.
InformationsquelleAutor Linus | 2012-12-21

1 Comentario

  1. 10

    Usted está recibiendo este error porque la Agrupación no volver IEnumerable<OrderedArticle> pero IEnumerable<IGrouping<string, OrderedArticle>>

    Usted necesita para cambiar su código para usar a.Key:

    var sells = orderedArt
        .GroupBy(a => a.ArticleName)
        .Select(a => new { Amount = a.Sum(b => b.ArticleAmount), Name = a.Key})
        .OrderByDescending(a => a.Amount)
        .ToList();
    • Esto funcionó a la perfección! Muchas gracias 🙂
    • También traté de LINQPad pero no obtuvo LINQ-Código de mi consulta.

Dejar respuesta

Please enter your comment!
Please enter your name here