none
Join Entity 4 RRS feed

  • Pergunta

  • Boa tarde

    estou trabalhando com MVC 4 usando o Entity Frameworks

    mas estou com um problema que sempre que tento usar join ele me da esse erro 

    {Erro ao traduzir expressão Linq em URI: Não há suporte para o método 'Join'.}

    meu select

    var Retorno = from x in dao.tblSlip
                                  join p in dao.tbltes
                                  on x.ID equals p.tblSlip
                                  where x.ID_User == 123 && p.ID_Item == x.ID
                                  select x;

    Alguem tem ideia do que posso fazer pra resolver esse problema?


    Leandro SVW

    terça-feira, 4 de dezembro de 2012 14:57

Respostas

Todas as Respostas

  • Creio que sua query está errada.

    No seu exemplo você está conferindo se o ID de uma tambela é igual a outra tabela, se tbItes for o nome de uma tabela, como está no seu exemplo. O certo seria:

    var Retorno = from x in dao.tblSlip
                         join p in dao.tbltes
                         on x.ID equals p.ID_Item
                         where x.ID_User == 123
                         select x;

    Teste e nos fale o que deu


    Twitter: @MayogaX
    Blog: Dev Blog

    terça-feira, 4 de dezembro de 2012 15:38
  • Ola Obrigado pela resposta mesmo assim eu ja tentei e ele me da o mesmo erro

    olha abaixo a query original

    var Retorno = from x in dao.tblPal_Bet
                                  join p in dao.tblPal_Pal
                                  on x.ID equals p.ID_Pal_Bet
                                  
                                  where x.ID_User == 123
                                  select x;   

    e o retorna da query sempre é o mesmo 

    {Erro ao traduzir expressão Linq em URI: Não há suporte para o método 'Join'.}


    Leandro SVW

    terça-feira, 4 de dezembro de 2012 15:42
  • ah estou trabalhando com MVC 4 usando o Entity Frameworks 4


    Leandro SVW

    terça-feira, 4 de dezembro de 2012 15:46
  • Desconsidere minha primeira resposta, estava como estaria no SQL não em LINQtoEntities.

    Vejamos, a primeira coisa é saber como está mapeado o seu banco. Você está usando Code First ou DataBase Firts? Pelo seu exemplo parece ser DataBase First. Bom, na sua tabela o campo ID_Pal_Bet é uma foren key?

    O jeito certo de fazer a query é como você estava fazendo mesmo, sendo 

    var Retorno = from x in dao.tblPal_Bet
                              join p in dao.tblPal_Pal
                              on x equals p.ID_Pal_Bet
                                  
                              where x.ID_User == 123
                              select x;  
    Onde, segundo esse mapeamento ID_Pal_Bet é uma foren key da tabela x

    Twitter: @MayogaX
    Blog: Dev Blog

    terça-feira, 4 de dezembro de 2012 16:29
  • sim eles sao foren key 

    Leandro SVW

    terça-feira, 4 de dezembro de 2012 16:35
  • Entao eu descobri o que é

    nao esta funcionando por que estou usando o WCF Data Service e ele nao suporta o Join

    entao eu pensei em usar uma view, mas mesmo assim nao esta funcionando alguem tem ideia de como que posso resolver isso?


    Leandro SVW

    terça-feira, 4 de dezembro de 2012 19:07
  • Ahhh, WCF Data Service...

    okay, vejas, sua view já possui os dados mesclados, né? Qual erro está dando agora então?


    Twitter: @MayogaX
    Blog: Dev Blog

    quarta-feira, 5 de dezembro de 2012 06:49
  • Entao consegui resolver o problema criando uma view com o join que o mesmo é liberado pelo WCF, entao no meu sistema eu pego essa view via WCF e faço um filtro em cima dela, funcionou perfeitamente.

    Obrigado pela ajuda.


    Leandro SVW

    quarta-feira, 5 de dezembro de 2012 12:09