У вас есть разные варианты для этого. С манжеты, я могу думать об этом:
а. Расширьте ручное соединение с заходом в ОП
from s in context.Region
join b in context.SubRegion on s.RegionID equals b.RegionID into bg
from b in bg.DefaultIfEmpty()
group b by s.RegionName into g
select new RegionsMV
{
RegionName = g.Key,
SubRegions = g.ToList()
}
б. Использовать сопоставление сущностей
public class Region
{
public int RegionID { get; set; }
public string RegionName { get; set; }
public ICollection<SubRegion> SubRegions { get; set; }
}
Тогда ваш запрос LINQ будет:
from s in context.Region.Include(r => r.SubRegions)
select new RegionsMV
{
RegionName = s.RegionName,
SubRegions = s.SubRegions
}
Или это эквивалентно:
context.Region.Include(r => r.SubRegions)
.Select(s => new RegionsMV()
{
RegionName = s.RegionName,
SubRegions = s.SubRegions
});