Inquiridor
Consutla EntityFramework

Pergunta
-
Galera bom dia, eu estou com uma dúvida no entity framework nos asp mvc, queria fazer a seguinte consulta:
Obs: isso é uma View o vwCaixa
select top 5 SUM(vrLancamento),nmTipoDocumento from vwCaixa group by nmTipoDocumento
Fiz assim:
public IList<dynamic> resumoCaixa() { IList<dynamic> lista = new List<dynamic>(); TimeSpan time = new TimeSpan(DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second); using (var ctx = new dbProClinicEntities()) { var t = ctx.vwCaixa.GroupBy(g => new { documento = g.nmTipoDocumento, pago = g.dtPago, valor = g.vrLancamento }) .Select(x => new { pago = x.Key.pago, tipoDocumento = x.Key.documento, vrLancamento = x.Sum(f => f.vrLancamento) }) .Take(5).ToList(); foreach(var f in t) { lista.Add(f); } } return lista.ToList(); }
No Controller estou retornando uma ViewBag:
public ActionResult Index() { AdminDAO dao = new AdminDAO(); IList<dynamic> caixa = dao.resumoCaixa(); ViewBag.Caixa = caixa; return View(ViewBag.Caixa); }
Na View estou fazendo assim:
<table class="table list"> <tbody> @foreach(var caixa in ViewBag.Caixa) { <tr> <td> <a href="#"><p class="title">@caixa.vrLancamento</p></a> <p class="info">@caixa.tipoDocumento</p> </td> </tr> } </tbody> </table>
Mais dá o seguinte erro:
- Editado Raniel Nogueira terça-feira, 23 de dezembro de 2014 12:46
Todas as Respostas
-
Tentei com chaves e carrega meus dados mais não está ficando do jeito que quero, cada passagem pelo Foreach os dados fica tudo na mesma linha:
<a href="#"><p class="title">@caixa{ vrLancamento = vrLancamento }</p></a> <p class="info">@caixa{ Pago = pago}</p>
Não ao certo como retornar esses dados corretamente.
-
-
Acho que o problema esta no IList<dinamic>
Já tentou criar uma classe só para recuperar o que precisa ?
ou tenta fazer assim:
public ActionResult Index() {
var t = ctx.vwCaixa.GroupBy(g => new { documento = g.nmTipoDocumento, pago = g.dtPago, valor = g.vrLancamento })
.Select(x => new { pago = x.Key.pago, tipoDocumento = x.Key.documento, vrLancamento = x.Sum(f => f.vrLancamento) })
.Take(5).ToList();ViewBag.Caixa = t;
return View(ViewBag.Caixa); }
Isco Sistemas José Luiz Borges
- Editado Jose Luiz Borges segunda-feira, 29 de dezembro de 2014 11:46 corerção