2016-09-01 6 views
4

私は3つのテーブルで結合する必要がありますが、そのうちの1つはEntity Frameworkによってマッピングされていません。 :マッピングされていないテーブルでEntity Frameworkに結合する

select * 
from Promocao p 
join ProdutoPromocao as pp on pp.PromocaoId = p.IdPromocao 
join Produto as pr on pp.ProdutoId = pr.IdProduto 
join Boteco as b on pr.botecoId = b.IdBoteco 
where b.IdBoteco = 1 

が、テーブルProdutoPromocaoがマッピングされていなかった、どのように私は、Entity Frameworkを使用してこれを行うことができますか?

(from pr in db.Promocao 
join p in db.Produto on (pr.Produto.Select(x=>x.IdProduto)) equals p.IdProduto //this line is not working, I would need something like pr.Produto.IdProduto but it does not offer me this alternative 
join b in db.Boteco on p.BotecoId equals b.IdBoteco 
where b.IdBoteco == idBoteco 
select pr 
).ToList(); 

誰かが私を助けてください:

は、私のような何かについて考えました。

答えて

1

次のように試すことができます。

(from pr in db.Promocao 
join p in db.Produto on (pr.Produto.Select(x=>x.IdProduto).FirstOrDefault()) equals p.IdProduto 
join b in db.Boteco on p.BotecoId equals b.IdBoteco 
where b.IdBoteco == idBoteco 
select pr 
).ToList(); 
+1

おかげで仲間、それが働いた:D – LuccasMF

+0

あなたは暖かく歓迎している:) – Sampath

1

EFで作業する場合、手動結合を使用する必要はありません(場合によってはそうすることもできません)。ナビゲーションプロパティを取得したら、それらを(オブジェクトの場合と同様に)使用するだけで、EFが必要なジョインを生成します。あなたのクエリは、このようなものでなければなりません

from pr in db.Promocao 
from p in pr.Produto 
let b = p.Boteco 
... (the rest) 
関連する問題