Nadal możesz używać zwykłych konstrukcji EF, po prostu mapując klasy do odpowiednich tabel i wymuszając sprzężenie w LINQ-To-Entities:
using(var ctx = new MyDbContext())
{
return ctx.TableA
.Join(ctx.TableB, a=>a.B_Id, b=>b.Id, (a,b)=>
new QueryResult{TableA=a, TableB=b});
}
Myślę, że to jedyny sposób, przynajmniej do EF6.