C# 使用LINQ 2 SQL选择随机行
我想知道使用LINQ 2 SQL从表中选择随机行的最佳方法,在搜索时,我发现了以下两个问题: 但我不认为这是最好最快的方法,根据msdn的说法,使用NewID随机选择行是一种不好的方法,在本文中: 他们提出了另一个比NewID方法更快的查询:C# 使用LINQ 2 SQL选择随机行,c#,entity-framework,linq-to-sql,.net-4.0,C#,Entity Framework,Linq To Sql,.net 4.0,我想知道使用LINQ 2 SQL从表中选择随机行的最佳方法,在搜索时,我发现了以下两个问题: 但我不认为这是最好最快的方法,根据msdn的说法,使用NewID随机选择行是一种不好的方法,在本文中: 他们提出了另一个比NewID方法更快的查询: SELECT * FROM Table1 WHERE (ABS(CAST( (BINARY_CHECKSUM(*) * RAND()) as int)) % 100) < 10 此查询背后的基本思想是,他们希望为表中的每一行生成一个
SELECT * FROM Table1
WHERE (ABS(CAST(
(BINARY_CHECKSUM(*) *
RAND()) as int)) % 100) < 10
此查询背后的基本思想是,他们希望为表中的每一行生成一个介于0和99之间的随机数,然后选择随机数小于指定百分比值的所有行
但当我尝试使用LINQ进行此操作时,我找不到与二进制校验和等价的方法
那么它们是LINQ中二进制_校验和的等价物吗
这真的是随机选择行的最快方法吗?如果你能帮我把它转换成LINQ代码,对我来说会容易得多
谢谢你的帮助这样做行吗
private static readonly Random _randomInstance = new Random();
private readonly Func<int, bool> ChanceSuccess = new Func<float, bool>(f =>
_randomInstance.Next(0, 101) <= f);
var result = from row in Table1
where ChanceSuccess(10)
select row;
您的查询遗漏了一些位,至少是select和结尾的分号。这不可能被翻译为SQL@erikkallen他们的问题是关于linq到sql和EF的,不是吗?没有投票权的人。