簡単なことだと思いますが、うまく動かせません。これは、参照として使用しているSQLクエリです。LINQでも同じことを実現したいと思います。
SQL:
select
schedulegroupslist.Schedule_Group_Key,
schedulegroupslist.Group_Name
from schedulegroupslist
inner join schedules on schedules.schedule_group_key = schedulegroupslist.Schedule_Group_Key
where schedules.Active = 1
and schedulegroupslist.Schedule_Count > 0
and schedulegroupslist.Active = 1
group by schedulegroupslist.Schedule_Group_Key
,schedulegroupslist.Group_Name
これが私がうまくいくと思ったlinqですが、グループスケジュール行でnull参照例外が発生します。
LINQ:
var included = from g in allGroups
           join s in allSchedules 
           on g.ScheduleGroupKey equals s.GroupKey into sg
           from schedules in sg.Where(s => s.Active == true 
                                           && g.ScheduleCount > 0 
                                           && g.Active == true).DefaultIfEmpty()
           group schedules by 
                    new { schedules.Key, schedules.ScheduleGroupName } 
                    into schedulesgroup
           select new { GroupName = schedulesgroup.Key.ScheduleGroupName,
                        ScheduleGroupKey = schedulesgroup.Key.Key };
linqはそれほど流暢ではないので、誰かが私がしていることを達成するためのより良い方法を教えてくれるかもしれません。