none
Contar los resultados de una consulta Linq RRS feed

  • Pregunta

  • Saludos, verán, tengo una consulta hecha en linq que cuando la mando a tolist me devuelve cierta información que después la pongo en un longlistselector, hasta ahí no hay problema, la situación es que necesito saber antes de mandarla o no al longlistselector cuanto elementos se extrajeron de la consulta. Estoy trabajando con windows phone en Framework 4

    Anexo el código espero me puedan ayudar gracias de antemano.

    El error me lo manda al llamar c.count.  me dice: 

    {System.NotSupportedException: Method 'Int32 CompareString(System.String, System.String, Boolean)' has no supported translation to SQL.

            Dim BASE As New SisneM.SISNEContext(SisneM.SISNEContext.ConnectionString)
            BASE.CreateIfNotExists()
            BASE.LogDebug = True
    
            Dim c = From U In BASE.Prods Where CStr(U.Codalterno = (Codigo.Text)) Select U.Codalterno, U.P2, U.P3, U.P4, U.C1, U.C2, U.C3, U.PORC_IVA, U.PORC_IEPS, U.PMINIMO, U.VARIANTE, U.FACTOR, U.Nomproducto, U.Existencia, U.P1
    
            MessageBox.Show(c.Count().ToString)

    domingo, 4 de mayo de 2014 22:39

Todas las respuestas

  • Hola, aunque el error te salte al llamar a c.count(), yo creo, que realmente te está dando en la query Linq.

    ¿Es posible que en esta condición CStr(U.Codalterno = (Codigo.Text)) los parámetros de la comparación sean de tipos diferentes?

    Saludos.


    Víctor del Valle - http://www.vrdelvalle.net

    lunes, 5 de mayo de 2014 7:35
  • Hola Javier.

    Antes de hacer el count tienes que utilizar el toList

    Te escribo el código a continuación.

    Dim BASE As New SisneM.SISNEContext(SisneM.SISNEContext.ConnectionString)
            BASE.CreateIfNotExists()
            BASE.LogDebug = True
    
            Dim c = From U In BASE.Prods Where CStr(U.Codalterno = (Codigo.Text)) Select U.Codalterno, U.P2, U.P3, U.P4, U.C1, U.C2, U.C3, U.PORC_IVA, U.PORC_IEPS, U.PMINIMO, U.VARIANTE, U.FACTOR, U.Nomproducto, U.Existencia, U.P1
    
            MessageBox.Show(c.ToList().Count().ToString)

    Saludos

    Aldo Flores Reyes

    @alduar

    La nube no es el futuro es el presente.

    http://alduar.blogspot.com

    lunes, 5 de mayo de 2014 7:40