The goal is to issue the fewest queries to SQL Server using LINQ to SQL without using anonymous types. The return type for the method will need to be IList
var children2 = from child2 in dataContext.Child2 where children.Any(c1 => c1.Parent == child2.Parent) select child2;
Should result in a single exists query, so it will end up being two queries.