Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk mendapatkan baris rawak secara cekap dari pangkalan data menggunakan LINQ ke SQL?
Apabila menggunakan LINQ ke SQL untuk mendapatkan baris rawak dari pangkalan data, jika ia bergantung kepada penapisan klien dan rawak, ia mungkin menghadapi masalah prestasi. Kaedah berikut memberikan pendekatan rawak untuk mendapatkan semula efisien yang memenuhi syarat tertentu:
menggunakan fungsi adat pengguna analog (UDF)
Untuk jadual kecil hingga sederhana, simulasi UDF boleh digunakan untuk melakukan operasi rawak pada tahap pangkalan data. Dalam konteks data, tentukan sebahagian kelas dan tambahkan kaedah berikut:
Walaupun UDF ini tidak dilaksanakan dalam kod C#, SQL Server akan menggunakannya untuk melakukan penyortiran rawak. Untuk mengambil garis rawak mengikut syarat -syarat, sila gunakan pertanyaan berikut:
<code class="language-csharp">partial class MyDataContext { [Function(Name="NEWID", IsComposable=true)] public Guid Random() { throw new NotImplementedException(); } }</code>
kaedah pengiraan
<code class="language-csharp">var cust = (from row in ctx.Customers where row.IsActive // 您的筛选条件 orderby ctx.Random() select row).FirstOrDefault();</code>
Untuk jadual besar, kaedah berasaskan mengira mungkin lebih cekap. Prinsip kerja adalah seperti berikut: Gunakan Kirakan bilangan garis kepala.
Dalam julat 0 hingga 1, indeks rawak dijana.
qry.Count()
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan baris rawak secara cekap dari pangkalan data menggunakan LINQ ke SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!