Here’s the DB setup of 3 tables:
Template
-----------
TemplateId (Pk Identity)
Name
Example Data:
TemplateId Name
1 Homepage
2 Generic Landing Page
TemplateArea (Bridge table to keep track of each template type's list of areas)
----------------
TemplateAreaId (Pk Identity)
TemplateId (Fk)
AreaId (Fk)
Example Data:
TemplateAreaId TemplateId AreaId
1 1 1
2 1 2
3 1 3
4 2 1
5 2 2
So every template has 3 areas (you’re seeing a set of templateIds (e.g. 2) and related set of AreaIds (1 & 2))
Area
-----
AreaId (Pk Name)
Name
Example Data:
AreaId Name
1 Top
2 Middle
3 Bottom
I’m trying to get a list of Areas based on a list of TemplateAreas keyed off of AreaId in my list of TemplateAreas:
so for example I should get this list of content areas for a TemplateId 2:
AreaId Name
1 Top
2 Middle
int templateId = 2;
List<TemplateArea> templateAreas = TemplateAreas.Where(ta => ta.TemplateId == templateId).ToList();
List<Area> areas = Areas.Where()); // this is where I'm stuck, how to get the list of areas (1 & 2) relatd to templateId 2
so in other words, get a list of Template Areas then get a list of related Areas keyed off of the specific TemplateId.
I’m basically trying to join to TemplateArea from Area on TemplateArea.TemplateId = templateId or something like that if this were T-SQL, e.g. Something like:
select AreaId, Name from Area join TemplateArea on Area.AreaId = TemplateArea.AreaId where TemplateArea.TemplateId = templateId
Using your code approach as a guide, you can join to the templateAreas: