1
如何获得从OrderBy
/GroupBy
生成的新表的主要内容?我如何获得从OrderBy/GroupBy生成的新表的主要?
var something = (from m in _db.Requests
where m.StoreID == myRequest.StoreID
where m.AcceptedTime != null
where System.Data.Entity.DbFunctions.TruncateTime(m.RequestTime) == today
group m by m.StaffID into g
let TotalPoints = g.Count()
orderby TotalPoints ascending
select new { User = g.Key});
然后,我试图让第一个结果,这将是最次的“M”在我Requests
表出现
var thisStaff = something.Select(o=>o.User).Take(1).ToString();
然而,“thisStaff”值不StaffID
这是我的Request
表的关键。它的值是
SELECT TOP (1) [Project1].[StaffID] AS [StaffID]
FROM (SELECT [GroupBy1].[A1] AS [C1], [GroupBy1].[K1] AS [StaffID]
FROM (SELECT [Extent1].[StaffID] AS [K1], COUNT(1) AS [A1]
FROM [dbo].[Requests] AS [Extent1]
WHERE ([Extent1].[StoreID] = @p__linq__0) AND
([Extent1].[AcceptedTime] IS NOT NULL) AND
((convert (datetime2, convert(varchar(255), [Extent1].[RequestTime], 102) , 102)) = @p__linq__1)
GROUP BY [Extent1].[StaffID]) AS [GroupBy1]) AS [Project1]
ORDER BY [Project1].[C1] ASC
请建议我应该如何改变它。顺便说一句,我也尝试使用以下几乎相同的结果。
var something2 = _db.Requests
.Where(o => o.StoreID == myRequest.StoreID)
.Where(o => o.AcceptedTime != null)
.Where(o => System.Data.Entity.DbFunctions.TruncateTime(o.RequestTime) == today)
.GroupBy(x => x.StaffID)
.Select(x => new
{
Count = x.Count(),
Name = x.Key,
})
.OrderBy(x => x.Count)
.Take(1);
看来我的查询总是返回默认值,这是主要问题。猜猜我必须再次检查我的查询。感谢您的快速回复! – 2014-10-02 10:28:09