>檢索隨機行滿足特定標準,使用linq to sql
>提取使用LINQ到SQL符合某些條件的隨機數據庫行可能很棘手。 一個常見的解決方案涉及數據庫中的模擬用戶定義函數(UDF)。 為了實現此目的
請注意,此C#函數未直接調用;它的目的是利用SQL Server的
函數進行隨機排序。 這是通過使用<code class="language-csharp">partial class MyDataContext { [Function(Name="NEWID", IsComposable=true)] public Guid Random() { throw new NotImplementedException(); } }</code>訂購查詢來完成的:
NEWID()
ctx.Random()
此方法適用於較小的數據集。但是,性能可能會遭受較大的桌子的影響。 對於實質性數據集,一種更有效的方法涉及首先計數行,然後選擇一個隨機索引:
<code class="language-csharp">var cust = (from row in ctx.Customers where row.IsActive orderby ctx.Random() select row).FirstOrDefault();</code>
此替代方案需要兩個數據庫交互,但避免了隨機訂購大表的潛在性能瓶頸。 選擇最適合您的數據大小和性能要求的方法。
以上是如何使用LINQ到SQL有效地進行隨機行進行隨機行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!