SQL 'dans' équivalent en LINQ et LINQ to SQL est [arrayOrListOrOtherEnumerable] .Contains (entity.someField).
le plus proche [fonctionnalité sage] équivalent de votre exemple de requête serait:
from usr in dc.Users
join ug in dc.UserGroups on usr.UserID equals ug.UserID
join gr in dc.Group on ug.GroupID equals gr.PkID
select new { usr, gr }
Je suis parti sur la gauche rejoindre à partir de votre requête depuis la façon dont il est écrit oblige effectivement la jointure gauche dans une jointure interne. Toutefois, si vous souhaitez effectuer une jointure à gauche dans une autre situation, cela se fait en rejoignant une sous-requête ajoutée par un .DefaultIfEmtpy.
Une excellente ressource sur des constructions communes comme celle-ci est Damien Garde de « Les LINQ antisèche » - un PDF d'une page imprimable qui peut être téléchargé sur son blog à http://damieng.com/blog/2009/08/12/linq-to-sql-cheat-sheet
Merci, c'est exactement ce que je cherchais ! –