Ну, самый простой перевод будет:
var query = from a in aTable
where (from b in bTable
where (from c in cTable
where (from d in dTable
where dField == "a guid"
select d.cTableId)
.Contains(c.cTableId)
select c.bTableId)
.Contains(b.bTableId)
select b.aTableId)
.Contains(a.aTableId)
select a;
Однако, вероятно, соединение будет значительно проще:
var query = from a in aTable
join b in bTable on a.aTableId equals b.aTableId
join c in cTable on b.bTableId equals c.bTableId
join d in dTable on c.cTableId equals d.cTableId
where d.dField == "a guid"
select a;
Я не проверял, но я думаю они сделают то же самое ...