3

我有这样的 SQL 查询

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

和相应的实体框架查询是

 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 Framework Query 中将 MAX 用于 wt.ToDate

请帮我

4

2 回答 2

1

where 子句中的最大值不应该起作用。

“聚合可能不会出现在 WHERE 子句中,除非它位于 HAVING 子句或选择列表中包含的子查询中,并且被聚合的列是外部引用。”

但是,如果您想要基于某个列的最高结果,请尝试按该列添加订单,然后获取该集合的最高结果。

于 2012-06-29T06:51:27.553 回答
1

您是否尝试过SqlServer.Max()方法。这些是您可以使用的聚合方法

例子

SELECT VALUE SqlServer.MAX(p.ListPrice)
FROM AdventureWorksEntities.Product as p 
于 2012-06-29T05:49:09.603 回答