none
CRM 2011 - Orderby não funciona se for no objeto já populado... RRS feed

  • Pergunta

  • Pessoal,

    algo muito sem explicação aconteceu comigo, eu resolvi de uma maneira, mas acho q deveria ter uma outra resposta e por isto vou postar aqui, se alguém souber, caso não já aproveitem o q eu fiz para resolver.

    Seguinte;

    Construi um WWF customizado para rodar no crm 2011, eu faço a integração de registros da conta para um sistema ERP, e isto é baseado sobre um arquivo q eu gero, onde contém os registro separados por | .

    acontece que eu fiz de uma maneira para q o usuário selecionasse a ordem que ele quiser destes registros, por exemplo

    Colun1,Coluna3,Coluna2...

    ou

    Coluna2,Coluna3,Coluna1...

    em fim, ele irá decidir.

    E também tem a ordenação para o nome do arquivo, ele seleciona quais campos irão compor o nome do arquivo e a ordem também... muito bem vamos ao código q interessa:

    esta pesquisa abaixo retorna este objeto lstMapeamento porém ordenado apenas por ordem para o nome do arquivo, que é um campo inteiro...

    List<Entidade.IntegracaoMapeamento> lstMapeamento = (from m in serviceContexto.ctm_integraomapeamentoSet where m.ctm_name == nomeEntidade && m.statecode.Value == ctm_integraomapeamentoState.Active orderby m.ctm_ordemparanomedearquivo select new Entidade.IntegracaoMapeamento { //aqui vem os campos

    /

    }).ToList();


    com este objeto eu o reaproveito, já q ele tem todo conteúdo que preciso, e nos outros métodos que criam o cabeçalho e corpo do arquivo

    eu reordeno a lista para o campo, inclusive tentei destas 3 maneiras abaixo:

    lstCamposMapeamento.OrderBy(x => x.OrdemCampoNoRegistro);
    
    lstCamposMapeamento = lstCamposMapeamento.OrderBy(x => x.OrdemCampoNoRegistro).ToList();
    
                
    lstCamposMapeamento.Sort((x, y) => x.OrdemCampoNoRegistro.CompareTo(y.OrdemCampoNoRegistro));
    e também tentei criando um outro objeto do mesmo tipo e atribuindo o valor destas sort/orderby

    muito bem, depurando funcionava, eu alterava os valores da entidade q contém estes parametros para ordernar e funciona, mudava de novo e funcionava novamente, porém qdo colocava em ambiente para rodar pelo crm não rolava...

    vai entender, alguém tem idéia o por que???

    para solucionar, eu tive que fazer a consulta as 3 vezes através da classe proxy q é gerada para o early bound...

    e ai rolou para os 3 casos.



    sexta-feira, 3 de agosto de 2012 17:04