There are two tables in my database: TPM_AREASand TPM_WORKGROUPS. There is a many-to-many relationship between the two tables, and these relationships are stored in a table named TPM_AREAWORKGROUPS. This table looks like this:

What I need to do is load all of these mappings into memory at once, in the fastest way. Since it TPM_AREAWORKGROUPSis an association, I cannot just say:
var foo = (from aw in context.TPM_AREAWORKGROUPS select aw);
I can come up with three ways to do this, but I'm not quite sure how to accomplish each of them, and the other is the best.
1) Download each workgroup, including related areas:
Sort of:
var allWG = (from w in context.TPM_WORKGROUPS.Include("TPM_AREAS")
where w.TPM_AREAS.Count > 0
select w);
: , , EntityFramework - .
: , TPM_WORKGROUPS , TPM_AREAWORKGROUPS 13 . , TPM_AREAWORKGROUPS, Tuples .
2)
TPM_AREAWORKGROUP context.TPM_AREAWORKGROUP. , , . ?
: , . !
: , ?
3) , raw SQL, , .
StoreConnection CreateCommand(). :
using (DbCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT AreaId, WorkgroupId FROM TPM_AREAWORKGROUPS";
var reader = cmd.ExecuteReader();
}
: , , , .
: , . Entity Framework, . , , ; TPM_AREAWORKGROUPS .
: ?
, # 2, , . , , - , .