Помогите нормально перенести запрос

Добрейший вечер, на текущий момент у меня имеется такой, полностью функционирующий SQL запрос:

select distinct pt.* from PlannedTasks pt
inner join ClientsTimePeriods ctp on pt.ClientGlobalId = ctp.ClientGlobalId
left join PlannedTasks pt2 on pt.ClientGlobalId = pt2.ClientGlobalId and pt2.StatusCode = 3 and pt2.UpdatedOn > '2021-10-27 18:49'
where pt.StatusCode = 1 and ctp.SendPeriodStart <= '2021-10-28' and ctp.SendPeriodEnd > '2021-10-27 '
and pt2.id is null

Я попытался перенести его в LINQ, получилось примерно так:

var channelGroups = (from pt in _db.PlannedTasks.Distinct()
                                 join ctp in _db.ClientsTimePeriods on pt.ClientGlobalId equals ctp.ClientGlobalId
                                 join pt2 in _db.PlannedTasks on new
                                     {
                                         pt.ClientGlobalId,
                                         StatusCheck = true,
                                         TimeCheck   = true
                                     }
                                     equals new
                                     {
                                         pt2.ClientGlobalId,
                                         StatusCheck = pt2.StatusCode == PlannedTaskStatusCode.Sent,
                                         TimeCheck   = pt2.UpdatedOn > DateTime.Now.AddHours(-10)
                                     }
                                     into re
                                 from res in re.DefaultIfEmpty()
                                 where 
                                     pt.StatusCode == PlannedTaskStatusCode.Awaiting
                                     && ctp.SendPeriodStart <= DateTime.Now && ctp.SendPeriodEnd > DateTime.Now

                                 select new
                                 {
                                     pt
                                 });

В итоге получается 2 варианта: Либо огромное количество дупликатов(Из-за выражения "pt2.UpdatedOn > '2021-10-27 18:49'"), вместо того, чтобы убирать значения, она добавляет дупликаты. Либо вообще не выводятся никакие значения, когда в SQL запросе они есть.


Ответы (0 шт):