2012-06-29 38 views
3

我有SQL查询这样MAX在实体框架条款

SELECT WI.[WorkItemID] ,[WorkItemNumber] ,[ToDate]  
FROM [WorkItem] AS WI INNER JOIN [WorkItemTrack] AS WT on WI.WorkItemID=WT.WorkItemID 
WHERE MAX([ToDate]) BETWEEN @StartDate AND @EndDate 

和corresponing实体框架查询

workItems = from wi in workItems.Where(p => p.IsActive) 
      join wt in entityCollection.WorkItemTrack on wi.WorkItemID equals wt.WorkItem.WorkItemID 
      where wt.ToDate >= fromdate && wt.ToDate <= todate 
      select wi; 

在这里,我不能够在Enitity使用MAX进行wt.ToDate框架查询

请帮我

+2

MAX在where子句中的用法是什么?没有多大意义 – fenix2222

回答

1

马克斯在where子句中不应该工作。

“除非它是在含有HAVING子句或选择列表在子查询 ,并且被聚合列 是外部引用聚合不应出现在WHERE子句中”。

但是,如果您想要基于特定列的最高结果,请尝试在所述列中添加一个订单,然后获取该集的最高结果。

1

你试过SqlServer.Max()方法。这些都是集合方法,您可以使用

SELECT VALUE SqlServer.MAX(p.ListPrice) 
FROM AdventureWorksEntities.Product as p 
+0

在Entity Framwork中需要它 – Somashekhar