【发布时间】:2009-04-30 02:44:02
【问题描述】:
我需要从 SQL Server 数据库中检索随机行。我正在寻找一种使用 LINQ 查询来实现此目的的方法。有可能吗?
SQL 查询:SELECT [Id] FROM [MyTable] ORDER BY NEWID()
上述 SQL 的等效 LINQ 查询是什么?
提前致谢。
【问题讨论】:
我需要从 SQL Server 数据库中检索随机行。我正在寻找一种使用 LINQ 查询来实现此目的的方法。有可能吗?
SQL 查询:SELECT [Id] FROM [MyTable] ORDER BY NEWID()
上述 SQL 的等效 LINQ 查询是什么?
提前致谢。
【问题讨论】:
为您的数据上下文类制作一个部分并放入以下方法:
partial class MyDataContext {
[Function(Name = "NEWID", IsComposable = true)]
public Guid Random()
{
return Guid.NewGuid();
}
}
现在您可以将其组合到您的查询中,它会被转换为对 sql newid() 函数的调用,如下所示:
from x in dc.MyEntities orderby dc.Random() select x.Id
【讨论】: