I'm using a c# and linq2db and have the following class/tables hierarchy:
public class YearlyTemplate
{
    [Column]
    public int Id { get; set; }
    public List<MonthlyTemplate> MonthlyTemplates { get; set;}
}
public class MonthlyTemplate
{
    [Column]
    public int Id { get; set; }
    [Column]
    public int YearlyTemplateId { get; set; }
    public YearlyTemplate YearlyTemplate{ get; set; }
    public List<DailyTemplate> DailyTemplates { get; set;}
}
public class DailyTemplate
{
    [Column]
    public int Id { get; set; }
    [Column]
    public int MonthlyTemplateId { get; set; }
    
    public MonthlyTemplate MonthlyTemplate { get; set; }
}
public class AppDataConnect : DataConnection
{
    public ITable<YearlyTemplate> YearlyTemplates => GetTable<YearlyTemplate>();
    public ITable<WeeklyTemplate> WeeklyTemplates => GetTable<WeeklyTemplate>();
    public ITable<DailyTemplate>  DailyTemplates => GetTable<DailyTemplate>();
}
I want to get a specific year from the database using where statement, but I want to get all nested MonthlyTemplates for it, and all DailyTemplates for each Monthlytemplate. How can I do it using linq2db effectively? I suppose I should use group by, but it works only on one level depth.
 
    