Usuário com melhor resposta
Join Entity 4

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
Respostas
-
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
- Marcado como Resposta Fernando Henrique Inocêncio Borba FerreiraMicrosoft employee, Moderator segunda-feira, 10 de dezembro de 2012 12:23
-
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
- Sugerido como Resposta Priscila Mayumi Sato quarta-feira, 5 de dezembro de 2012 15:21
- Marcado como Resposta Fernando Henrique Inocêncio Borba FerreiraMicrosoft employee, Moderator segunda-feira, 10 de dezembro de 2012 12:23
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
-
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
-
-
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 -
-
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
- Marcado como Resposta Fernando Henrique Inocêncio Borba FerreiraMicrosoft employee, Moderator segunda-feira, 10 de dezembro de 2012 12:23
-
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
- Sugerido como Resposta Priscila Mayumi Sato quarta-feira, 5 de dezembro de 2012 15:21
- Marcado como Resposta Fernando Henrique Inocêncio Borba FerreiraMicrosoft employee, Moderator segunda-feira, 10 de dezembro de 2012 12:23