Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/08/2011, 17:44
Avatar de dwaks
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í.