从表中获取3个随机记录

时间:2012-07-15 19:11:31

标签: entity-framework-4

我已经阅读了类似查询的多个答案,但似乎都没有找到。

想象一下,我有一个包含10行的表,如何使用Entity Framework从该表中检索3个随机行?不只是1个随机行,而是3个随机行 - 每个行都不同?

提前致谢

2 个答案:

答案 0 :(得分:18)

var threeRandomFoos = foos.OrderBy(x => Guid.NewGuid()).Take(3);

答案 1 :(得分:8)

相反,有一种更简单的方法,

var threeRandomFoos = foos.OrderBy( x=> SqlFunctions.Rand()).Take(3);

Guid.NewGuid的性能会慢一些,为什么不使用SqlFunctions本身指定的Random?