首頁 >後端開發 >C++ >如何使用LINQ到SQL有效地進行隨機行進行隨機行?

如何使用LINQ到SQL有效地進行隨機行進行隨機行?

Patricia Arquette
Patricia Arquette原創
2025-01-26 16:12:10651瀏覽

How to Efficiently Fetch a Random Row with Conditions Using Linq to SQL?

>檢索隨機行滿足特定標準,使用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn