none
EF 6.0 ( Pegar valor iorderedenumerable para List RRS feed

  • Pergunta

  • Boa tarde pessoal,

     Estou carregando um grid via context exe: 

    var produto = (from p in ctx.Produto.First().where...

    Enfim, só que ao invés de carregar o "var produto", eu gostaria de popular o list que criei da DTO ex:

    List<produtoDTO> pDTO = new List<produtoDTO>()

    eu queria fazer pDTO = (from .......,

    Porém ele não aceita pois diz que não pode passa valor de iorderedenumerable  para List, acho que esse iorderedenumerable é pq no final coloquei um Orderby(x => x....)

      Bom, se alguém puder me ajudar.

    sexta-feira, 4 de abril de 2014 14:22

Todas as Respostas

  • Vc faz select new produtoDTO ? Usou ToList() ao fim da sua query ?
    sexta-feira, 4 de abril de 2014 14:29
  • Oi Daniel,

       Sim, eu uso o select new para escolher as colunas que vou usar no grid e no final coloco o tolist().orderby ..

    sexta-feira, 4 de abril de 2014 14:44
  • O erro está no select new, mas falar assim é dificil poste toda sua query, esta ocorrendo este erro pq quando faz somente select new {} vc cria uma classe anonima, para aceitar vc deveria fazer select new produtoDTO{} e passar os campos da consulta para a classe produtoDTO. Se não conseguir mostre toda a query.
    sexta-feira, 4 de abril de 2014 14:46
  • Blz.. a noite eu vou tentar fazer isso.. se eu não conseguir eu posto aqui, se eu conseguir eu posto tb  rsrs. vlw.
    sexta-feira, 4 de abril de 2014 14:50
  • Olá a solução é a seguinte:

    List<produto_M> lista_pDTO = new List<produto_M>();
    
            void carregaGrid()
            {
                try
                {
    
                    using (Contexto ctx = new Contexto())
                    {
                        lista_pDTO = ctx.Produto_M.OrderBy(x => x.Produto).ToList();
                        var query = from p in lista_pDTO
                                    select new
                                    {
                                        Id = p.Id,
                                        Descricao = p.Produto,
                                        Preco = p.Preco_Unitario,
                                        Ativo = (p.Ativo == true ? "Sim" : "Não")
                                    };
                        dgFiltro.DataSource = query.ToList();
                        
                        setColumn();
                    }
    
                }
                catch { throw; }
            }

    o Orderby tem que vir antes do .ToList();

    terça-feira, 8 de abril de 2014 02:01