.net - Can't transform Linq to IEnumerable -
i have method on dal class:
public ienumerable<pedidos> pedidos_listar() { using (var context = new ohmioentities()) { var _ped = pedidos in context.pedidos pedidos.id_cliente == 1 select new {pedidos.id_pedido, pedidos.fecha, pedidos.clientes}; return _ped.tolist(); } }
and vs give error:
error 3 no se puede convertir implícitamente el tipo 'system.collections.generic.list<anonymoustype#1>' en 'system.collections.generic.ienumerable<ohmio.modellayer.pedidos>'. ya existe una conversión explícita (compruebe si le falta una conversión)
what i'm doing wrong here?thanks
edit more info: pedidos defined pocos db class work fine:
public ienumerable<pedidos> pedidos_listar() { using (var context = new ohmioentities()) { return context.pedidos.tolist(); } }
but need use linq select field , clause. when try suggested:
public ienumerable<pedidos> pedidos_listar() { using (var context = new ohmioentities()) { var _ped = pedidos in context.pedidos pedidos.id_cliente == 1 select new pedidos {pedidos.id_pedido, pedidos.fecha, pedidos.clientes}; return _ped.tolist(); } }
i error:
can't inicialize type 'ohmio.modellayer.pedidos' colection inicializer because don't implement 'system.collections.ienumerable' (manual translate)
i'm missing here? thanks!
you're not returning type said would. you're returning anonymous type. fix projecting known type:
public ienumerable<pedidos> pedidos_listar() { using (var context = new ohmioentities()) { var _ped = pedidos in context.pedidos pedidos.id_cliente == 1 select new pedidos {id = pedidos.id_pedido, fecha = pedidos.fecha, clientes = pedidos.clientes}; return _ped.tolist(); } }
or if don't need projection , returning ef model directly:
public ienumerable<pedidos> pedidos_listar() { using (var context = new ohmioentities()) { var _ped = pedidos in context.pedidos pedidos.id_cliente == 1 select pedidos; return _ped.tolist(); } }
or simply:
public ienumerable<pedidos> pedidos_listar() { using (var context = new ohmioentities()) { return context.pedidos.where(p => p.id_cliente == 1); } }
Comments
Post a Comment