Foros del Web » Programación para mayores de 30 ;) » .NET »

devolucion de consulta

Estas en el tema de devolucion de consulta en el foro de .NET en Foros del Web. Hola chicos, mi problema es el siguiente, en una clase tengo el siguiente metodo public IQueryable<> buscartodasUnidadesServicio() { var unidad_servicio = from tblCity in p.UnidadNegocios ...
  #1 (permalink)  
Antiguo 05/08/2011, 07:53
 
Fecha de Ingreso: diciembre-2007
Mensajes: 41
Antigüedad: 16 años, 11 meses
Puntos: 0
Información devolucion de consulta

Hola chicos, mi problema es el siguiente, en una clase tengo el siguiente metodo

public IQueryable<> buscartodasUnidadesServicio()
{
var unidad_servicio = from tblCity in p.UnidadNegocios
join indicador in p.Indicadors on tblCity.UnidadNegocioId equals indicador.UnidadNegocioId
join uservicios in p.UnidadServicios on indicador.UnidadServicioId equals uservicios.UnidadServicioId
select new {tblCity.EmpresaId,uservicios.UnidadServicioId,use rvicios.Descripcion};


return unidad_servicio;
}

cosa que esta ma, No se como devolver esa consulta, y el otro tema es que desde otra clase llamo al metodo y tendria que hacer esto:

IQueryable states = p.buscartodasUnidadesServicio()
.Where(x => x.EmpresaId == Convert.ToInt32(EmpresaId));

por favor que alguien me Ayude, Gracias!
  #2 (permalink)  
Antiguo 14/08/2011, 17:44
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 22 años, 3 meses
Puntos: 15
Respuesta: devolucion de consulta

El problema esta en la mezcla de objetos anonimos con IQueryable sin hacer uso de un tipo. El IQueryable no tiene Where ni nada de eso porque no es IEnumerable. El IQueryable<T> si hace esta funcion pero tienes que mandar el tipo exacto que el metodo buscartodasUnidadesServicio devolvera.

Haslo con el tipo correcto en el metodo y afuera haces uso del objeto anonimo.

Seria así:

Código C#:
Ver original
  1. public IQueryable<UnidadNegocio> buscartodasUnidadesServicio()
  2. {
  3.  
  4. return from tblCity in p.UnidadNegocios
  5. join indicador in p.Indicadors on tblCity.UnidadNegocioId equals indicador.UnidadNegocioId
  6. join uservicios in p.UnidadServicios on indicador.UnidadServicioId equals uservicios.UnidadServicioId
  7. select tblCity;
  8.  
  9. }

Esto aun no es ejecutado a la base de datos, simplemente es un query. Para hacer uso de el desde afuera es como quieres hacerlo yt haslo por linq no lampa. y haces el select que quite:

Código C#:
Ver original
  1. var states = from x in p.buscartodasUnidadesServicio()
  2. Where x.EmpresaId == Convert.ToInt32(EmpresaId)
  3. select new {x.EmpresaId,x.UnidadServicio.UnidadServicioId,x.UnidadServicio.Descripcion};
Es un seudocodigo pero la idea esta allí.

Etiquetas: linq
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:32.