2011-04-06 208 views
0

有人可以帮助将以下内容转换为LINQ To SQL查询吗?将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) 
+0

在这个查询,你不需要第3 where条件。你已经在你的嵌套查询中检查了。 – 2011-04-07 15:23:00

回答

1

试试这个

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

我在这部分gpr.Max(ProjectID)中获取ProjectID不存在于上下文中。 – Malcolm 2011-04-07 07:05:33

+0

让我们尝试'选择Max(gpr.ProjectID)'代替。 今天我将在Visual Studio中尝试 – 2011-04-07 13:21:41

+0

我刚刚在Visual Studio中测试之后更新了我的答案 – 2011-04-07 14:51:27