使用运算符' IN'翻译查询在Linq

时间:2016-05-28 17:08:43

标签: c# linq

select * 
from Enfants
where Enfants.id in 
(
   select EnfantParents.Enfant_Id 
   from EnfantParents 
   where EnfantParents.Parent_Id in 
   (
       select parents.Id 
       from Parents 
       where Parents.Id in 
       (
          select Reservations.ParentId 
          from Reservations 
          where Reservations.CrecheId = 1
       )
   )
 )

EnfantParents是一张隐藏的桌子。

我有Enfants *-----*父母1-----*预订

谢谢。

1 个答案:

答案 0 :(得分:1)

  

EnfantParents是一个隐藏的表

从上面我假设你正在使用EF和auto" link"表,您的Enfant实体具有Parents导航属性,而您的Parent实体具有Reservations导航属性。

然后,您可以使用LINQ查询获得与SQL查询相同的结果,如下所示:

var query = db.Enfants
    .Where(e => e.Parents.SelectMany(p => p.Reservations).Any(r => r.CrecheId == 1));