我在LINQ中遇到SQL查询问题

时间:2012-05-16 17:13:20

标签: c# asp.net sql sql-server linq

我正在尝试提出一个LINQ查询,该查询将返回具有最多命中的第一行,然后是按日期desc排序的其余行。这可以在SQL中执行,还是需要2个单独的查询?我的表看起来与此类似。

后端:SQL Server 2008

表名:产品

产品编号产品名称点击DateAdded

1 Coffee 600 5/2/2012
2香草800 4/19/2012
3巧克力3000 3/25/2012
4 Oreo 200 2/10/2012
5 Heath 250 5/13/2012
6 Sherbet 550 4/20/2012
7 Mocha 2000 3/22/2012

我希望查询的结果如下:(巧克力优先 - 基于点击,其余 - 按日期降序排列)

3巧克力3000 2012年3月25日
5希斯250 2012年5月13日
1个咖啡600个2012年5月2日
6果子露550 2012/4/20
2香草800 4/19/2012
7摩卡2000 3/22/2012
4奥利奥200 2012年2月10日

非常感谢任何帮助。我是LINQ的新秀。

谢谢!

1 个答案:

答案 0 :(得分:1)

int maxHits = Products.Max( p => p.Hits );

var query = Products.OrderByDescending( 
                p => p.Hits == maxHits ).ThenByDescending( p => p.DateAdded );
相关问题