none
Devolver una coleccion desde una funcion RRS feed

  • Pregunta

  • Hola

    como hago para devolver una coleccion resultante de una consulta linq desde una funcion para enlazarla a una Dropdownlist de asp.net?

    tengo un metodo asi:

    Public Function GetDatos(Of t)(nId As Short) As IQueryable(Of t)

    Dim q = From c In db.tabla Where nId = c.Id And c.campo = 0
             Group By c.Id, c.campo2 Into NroPendientes = Count()
                        Select campo2, NroPendientes

                Return q
    End Function

    y en mi webform tengo
                Me.ddl.DataTextField = "campo2"
                Me.ddlAsignacion.DataValueField = campo2"
                Me.ddlAsignacion.DataSource = objeto.GetDatos(nId) <===== aqui da el errror

    ---------------

    Error 2 Type parameter 't' for 'Public Function GetDatos(Of t)(nId  As Short) As System.Linq.IQueryable(Of t)' cannot be inferred. D:\xx\proyecto\Views\mipagina.aspx.vb 

    --------------

    Les agradezco la ayuda


    Salu2 Sergio T

    miércoles, 19 de junio de 2013 12:55

Respuestas

  • hola

    recomendaria que crees una clase

    Public Class Datos
    
       Public Property campo2 As String
       Public Property NroPendientes As Integer
    
    End class

    y luego la uses para devolver

    Public Function GetDatos(nId As Short) As List(Of Datos)
    
    	Dim q As List(Of Datos) = (From c In db.tabla Where nId = c.Id And c.campo = 0
    							Group By c.Id, c.campo2 Into NroPendientes = Count()
    							Select New Datos() { _
    								.campo2 = campo2,  _
    								.NroPendientes = NroPendientes _
    							}).ToList()
    
        Return q
    	
    End Function

    como veras se mapea los datos con las propiedades de la clase

    nota: la notacion de las propiedades de la clase requiere .net 4 o superior

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 19 de junio de 2013 13:29

Todas las respuestas

  • hola

    recomendaria que crees una clase

    Public Class Datos
    
       Public Property campo2 As String
       Public Property NroPendientes As Integer
    
    End class

    y luego la uses para devolver

    Public Function GetDatos(nId As Short) As List(Of Datos)
    
    	Dim q As List(Of Datos) = (From c In db.tabla Where nId = c.Id And c.campo = 0
    							Group By c.Id, c.campo2 Into NroPendientes = Count()
    							Select New Datos() { _
    								.campo2 = campo2,  _
    								.NroPendientes = NroPendientes _
    							}).ToList()
    
        Return q
    	
    End Function

    como veras se mapea los datos con las propiedades de la clase

    nota: la notacion de las propiedades de la clase requiere .net 4 o superior

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 19 de junio de 2013 13:29
  • Gracias por ahi va la solucion :)

    la verdad q no me adecuo aun a linq, lo hallo un poco confuso, en relacion al sql que es mi "lenguaje natural" no tienes algun link o tutorial para apender mejor el linq? por que por ahora mi tendencia es hacer StoreProcedures o vistas y llamarlas desde entityFramework,  por que como te digo el linq, .. no me llega a cuadrar, aun a no ser pa cosas chicas pero aun no me imagino consultas con varios joins, having,..  

    Gracias estimado


    Salu2 Sergio T

    miércoles, 19 de junio de 2013 15:39
  • hola

    quizas ejemplos sobre linq ayude

    101 LINQ Samples

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 19 de junio de 2013 15:53