none
Converte query com WITH RRS feed

  • Pergunta

  • Bom dia, no linq eu não tenho o WITH como eu poderia transformar essa Query SQL para Linq?

    WITH AcumMov AS (SELECT        SchoolID, ProductID, SUM(Quantity) AS QuantProd, SUM(Quantity * Price) AS VendasProd
                                                FROM            sales.Movement
                                                WHERE        (SchoolID = 1201) AND (PCName = 'PC-jhonas') AND (Date BETWEEN CONVERT(datetime, '2014.02.23 00:00:00', 102) AND 
                                                                         CONVERT(datetime, '2014.02.23 23:59:59', 102))
                                                GROUP BY SchoolID, ProductID)
        SELECT        M.SchoolID, M.ProductID, P.Name, M.QuantProd, M.VendasProd
         FROM            AcumMov AS M INNER JOIN
                                  commons.Product AS P ON M.ProductID = P.ProductID

    Vlw...

    segunda-feira, 24 de fevereiro de 2014 12:51

Todas as Respostas

  • Olá Jhonas,

    Infelizmente o LINQ não possui suporte para este tipo de feature, o mais recomendado seria você encapsular este SQL dentro de uma procedure ou view.

    Vitor Mendes | http://www.vitormendes.com.br/

    "Ajuda teu semelhante a levantar a sua carga, porém, não a carregá-la." (Pitágoras)

    segunda-feira, 24 de fevereiro de 2014 14:05
  • Mas teria como eu fazer essa consulta pelo Linq de outro jeito?
    segunda-feira, 24 de fevereiro de 2014 16:56
  • Olá Jhonas, desculpa a demora por responder.

    Infelizmente não teria, as únicas soluções foi a que eu citei acima, criando uma view/stored procedure e chamar elas diretamente, um exemplo:

    using(MeuContexto ctx = new MeuContexto())
    {
      ctx.Database.SqlQuery<Cliente>("storedProcedure", params); //Se houve parametros, passe :)
    }


    Vitor Mendes | http://www.vitormendes.com.br/

    "Ajuda teu semelhante a levantar a sua carga, porém, não a carregá-la." (Pitágoras)

    quinta-feira, 6 de março de 2014 14:16