You will need to cast the results of each table fetch ToList and then use LINQ to Objects to perform the heterogeneous join. If you know that the result of particular queries are rather small, you may be able to use the Where list.Contains(item.value) syntax to perform an Where value IN (list) SQL statement. Be aware that heterogeneous queries require that you take a fair amount of care to avoid fetching the least number of rows across the network.
Jim Wooley
www.ThinqLinq.com