 <p>I don't think it's possible to retrieve completely unrelated tables through LINQ in one shot. Maybe for performance reasons you should consider caching so you won't need to query the database every time.</p> <p>With plain SQL on MSSQL you could use batch statements.</p> <pre><code>var batchSql = "select * from Repository; select * from StaffMembersRepository; select * from CategoriesRepository"; // ... // iterate over batch results using(var reader = command.ExecuteReader()) { var currentResultSet = 0; while(reader.NextResult()) { currentResultSet++; switch(currentResultSet) { case 1: while(reader.Read()) { // retrieve row data } case 2: // similar case 3: // similar } } } </code></pre> <p><a href="http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.nextresult.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.nextresult.aspx</a></p> <p>But I don't think it's a nice way.</p>