Inquiridor
EF 6.0 ( Pegar valor iorderedenumerable para List

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.
Todas as Respostas
-
-
-
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.
-
-
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();