none
Linq to entities query RRS feed

  • Pergunta

  • Quando executo a seguinte query abaixo ocorre o seguinte erro:

     public static IEnumerable<Regiao> GetAll()
            {
                using (ConnectionMeupdv _db = new ConnectionMeupdv())
                {                
                    var list = (from reg in _db.Regiao
                                join agen in _db.Agencia on reg.AGENCIA_CD_AGENCIA equals agen.CD_AGENCIA
                                select new Regiao 
                                {
                                    CD_REGIAO = reg.CD_REGIAO,
                                    NM_REGIAO = reg.NM_REGIAO,
                                    BO_ATIVO = reg.BO_ATIVO,     
                                    BO_EXCLUIDO = reg.BO_EXCLUIDO,
                                    AGENCIA_CD_AGENCIA = reg.AGENCIA_CD_AGENCIA,
                                    NM_AGENCIA = agen.NM_AGENCIA
                                }).ToList();
    
                    return list;
                }
            }


    The entity or complex type 'Meupdv3Model.Regiao' cannot be constructed in a LINQ to Entities query.

    segunda-feira, 12 de novembro de 2012 13:50

Respostas

  • Olá Eiras,

    Neste caso vc pode trabalhar de duas formas:

    1 - Criar uma classe, não mapeada pelo EF, que tenha a estrutura que vc precise e popular seus campos no momento que estiver projetando sua query.

    2 - Fazer laço de repetição após a query, atribuindo o nome da agência ao campo NM_AGENCIA

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    Microsoft MVP - Data Platform Development
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    • Marcado como Resposta Eiras segunda-feira, 12 de novembro de 2012 18:40
    segunda-feira, 12 de novembro de 2012 18:30
    Moderador

Todas as Respostas

  • Olá Eiras,

    Tudo bem?

    No caso vc não pode projetar os resultados de uma quary em entidade mapeada pelo Entity Framework.

    Tente algo como:

    public static IEnumerable<Regiao> GetAll()
            {
                using (ConnectionMeupdv _db = new ConnectionMeupdv())
                {                
                    var list = (from reg in _db.Regiao.Include(c => c.Agencia)).ToList();
                    return list;
                }
    }
    .

    []s!

    Fernando Henrique Inocêncio Borba Ferreira
    Microsoft MVP - Data Platform Development
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    segunda-feira, 12 de novembro de 2012 15:22
    Moderador
  • Olá Fernando,

    No resultado de minha query tem todos os campos que a minha entidade "Regiao" tem. Coloquei o "NM_AGENCIA" dentro de "Regiao".

    segunda-feira, 12 de novembro de 2012 18:15
  • Olá Eiras,

    Neste caso vc pode trabalhar de duas formas:

    1 - Criar uma classe, não mapeada pelo EF, que tenha a estrutura que vc precise e popular seus campos no momento que estiver projetando sua query.

    2 - Fazer laço de repetição após a query, atribuindo o nome da agência ao campo NM_AGENCIA

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    Microsoft MVP - Data Platform Development
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    • Marcado como Resposta Eiras segunda-feira, 12 de novembro de 2012 18:40
    segunda-feira, 12 de novembro de 2012 18:30
    Moderador