2012-06-29 25 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