linqのフィルターを使用してランダムな行を効率的にSQLに選択します
メソッド1:ユーザー定義関数(UDF)のシミュレーション このアプローチは、データコンテキスト内でカスタム関数を活用してランダムなGUIDを生成し、行の注文を効果的にランダム化します。データコンテキストの部分クラス定義でダミーUDF:
を定義するには、UDFを模倣するメソッドを追加します。
<code class="language-csharp">partial class MyDataContext { [Function(Name = "NEWID", IsComposable = true)] public Guid Random() { throw new NotImplementedException(); } }</code>
<code class="language-csharp">var cust = (from row in ctx.Customers where row.IsActive // Your filter condition orderby ctx.Random() select row).FirstOrDefault();</code>フィルターを適用するクエリを作成します:
カウントフィルタリングされた行:
<code class="language-csharp">var qry = from row in ctx.Customers where row.IsActive select row;</code>ランダムインデックスを生成:
<code class="language-csharp">int count = qry.Count(); // First database round trip</code>ランダムな行を取得する:
<code class="language-csharp">int index = new Random().Next(count);</code>
以上がLINQ to SQL でフィルターを使用してランダムな行を効率的に取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。