将包含Group By,Distinct和Aggregate函数的Sql查询转换为Linq to Entity

时间:2016-04-21 10:46:38

标签: sql linq linq-to-sql linq-to-entities

我是Linq to Entity的新手。我尝试了一些方法来获取一个简单的SQL查询到Linq到实体。
这是我的询问。

PerformanceCounterCategory.GetCategories()

我试过了:

select distinct top 5 convert(varchar,CreatedDate,111) as date, count(Id)
FROM  
XYZ l 
GROUP BY convert(varchar,CreatedDate,111) order by date desc

但它不适合我。 任何人都可以帮我将这个简单的查询转换为Linq to Entity。

1 个答案:

答案 0 :(得分:0)

在GroupBy之后,您必须将结果投影到新对象。然后你可以在新对象上订购。

Result

var dalMemberList = dbContext.XYZ.
Where(c => c.IsDeleted == false)
.Select(converted => new {
NewDate = converted.CreatedDate.Date.ToShortDateString(), //or other convertions
converted.IsDeleted,
converted.CreatedDate
} )
.GroupBy(g => g.NewDate)
.Select(b=> new  {
key = b.Key,
list = b.OrderByDescending(t=>t.CreatedDate).Take(5)
});