Не ответ LINQ, но совершенно правильный ответ LINQ-to-SQL:
var results = ctx.ExecuteQuery<Table1>(@"
select * from table1 where pkey1 in
(select pkey2 from table2 where column1='abc')").ToList();
У вас нет для передачи управления каждым запросом LINQ;действительно, во многих случаях хорошо написанный пользовательский запрос TSQL может быть гораздо более эффективным, чем тот, который генерируется из LINQ-to-SQL.Что не является критикой LINQ-to-SQL (он отлично справляется с большинством простых запросов и т. Д.).