c# – 使用非映射表在Entity Framework中进行连接

我需要帮助:我需要与3个表进行连接,但其中一个表没有被实体框架映射,因为它只是一个关系表,我需要的连接是这样的:

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();

有人请帮帮我.

最佳答案 您可以尝试如下所示.

(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();
点赞