none
Rellenar una clausula where RRS feed

  • Pregunta

  • Buenas,

    Necesito entender como tengo que meter en un linq un parametro que paso como opcional. El código es este:

    Public Function LeerInmofactoryAgencia(ByVal archivo As String, ByVal ListPoblacion As List(Of Equivalencia),
                                               Optional ByVal NombreAgencia As String = Nothing) As List(Of Agencia)
    
    Dim DatosAgencia = From b In doc.Descendants("Agencias").Descendants("Agencia") Where NombreAgencia = b.Element("Nombre").Value
    
    
    

    Necesito que según si me pasan NombreAgencia hacer el where o no. Como es un parámetro opcional, me interesa en unos casos hacer ese linq sin el where para sacar todas las agencias o directamente pasarle el nombre de la agencia y que haga el where.

    Gracias 

    martes, 29 de noviembre de 2011 10:40

Todas las respuestas

  • Hola,

    Pues simple, preguntas si NombreAgencias es distinto de Nothing y montas la consulta de una forma o de otra, siempre dependiendo de este valor.

    O montas la consulta así 

    Dim DatosAgencia = From b In doc.Descendants("Agencias").Descendants("Agencia")

    o 

    Dim DatosAgencia = From b In doc.Descendants("Agencias").Descendants("Agencia") Where NombreAgencia = b.Element("Nombre").Value
    
    Dependiendo del valor

    Saludos.


    phurtado
    miércoles, 30 de noviembre de 2011 21:32
  • Para evitar duplicar código, mejor sería así:

     

    Dim DatosAgencia = From b In doc.Descendants("Agencias").Descendants("Agencia")
    
    If Condicion Then 
     DatosAgencia = From a in DatosAgencia Where NombreAgencia = b.Element("Nombre").Value)
    
    End If


     

     

     

     


    Federico Daniel Colombo
    • Editado thepirat000 domingo, 15 de enero de 2012 3:22
    domingo, 15 de enero de 2012 3:22