Преобразование SQL в инструкцию LINQ To SQL

#sql #linq-to-sql

#sql #linq-to-sql

Вопрос:

Может кто-нибудь, пожалуйста, помочь преобразовать следующее в запрос LINQ To SQL?

 select * from projects pr
where pr.Active<>0 
AND CapturedDocumentType=2 
AND SubmissionReminderTypeID > 0 
AND pr.ProjectID In(SELECT Max(wpr.ProjectID) as ProjID 
                    FROM Projects wpr 
                    where wpr.Active<>0 
                    AND wpr.CapturedDocumentType=2 
                    AND wpr.SubmissionReminderTypeID > 0
                    group by wpr.EmployeeID)
  

Комментарии:

1. в этом запросе вам не нужны первые 3 условия where. вы уже проверяете это в своем вложенном запросе.

Ответ №1:

попробуйте это

 var result = from pr in dc.Projects
             where 
                (from wpr in dc.Projects
                 where wpr.Active amp;amp; 
                       wpr.CapturedDocumentType == 2 amp;amp; 
                       wpr.SubmissionReminderTyepID > 0
                 group wpr by wpr.EmployeeID into gpr
                 select gpr.Max(x => x.ProjectID)).Contains(pr.ProjectID)
             select pr;
  

Комментарии:

1. Я получаю, что ProjectID не существует в контексте в этой части gpr.Max (ProjectID).

2. давайте попробуем select Max(gpr.ProjectID) вместо этого. Сегодня я попробую в Visual Studio