如何使用Linq的查询语法返回随机记录?

时间:2013-03-30 21:08:54

标签: c# .net sql linq

如何使用Linq的查询语法返回随机记录?

类似于以下tsql语句:

select top 10 * from sometable ORDER BY NewID()

2 个答案:

答案 0 :(得分:2)

这应该是等价的:

var query =
    (from s in sometable      
    orderby Guid.NewGuid()    //Ordering by Guid.NewGuid() is the same as newid()
    select s)
    .Take(10);                //This cannot be done in query syntax.

答案 1 :(得分:1)

您可以将Guid.NewGuid()与linq

一起使用
var results = db.sometable.OrderBy(r => Guid.NewGuid()).Take(10);

或查询语法:

var results = (from s in sometable orderby Guid.NewGuid() select s).Take(10);