我想知道使用 LINQ 2 SQL 从表中选择随机行的最佳方法,而我在搜索时发现了这两个问题:
但我认为这不是最好和最快的方法,根据 msdn 的说法,使用 NewID() 是随机选择行的坏方法,并且在这篇文章中:
http://msdn.microsoft.com/en-us/library/cc441928.aspx
他们提出了另一个比 NewID 方法更快的查询:
SELECT * FROM Table1
WHERE (ABS(CAST(
(BINARY_CHECKSUM(*) *
RAND()) as int)) % 100) < 10
这个查询背后的基本思想是,他们想为表中的每一行生成一个 0 到 99 之间的随机数,然后选择所有那些随机数小于指定百分比值的行
但是当我尝试使用 LINQ 执行此操作时,我找不到与 BINARY_CHECKSUM 等效的
那么它们是 LINQ 中 BINARY_CHECKSUM 的等价物吗?
它真的是随机选择行的最快方法吗?(如果你能帮我把它转换成 LINQ 代码,对我来说会容易得多)
感谢您的帮助