Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk mendapatkan kriteria spesifik mesyuarat rawak menggunakan LINQ ke SQL?
Pendapatan Baris Rawak dengan Penapisan Bersyarat dalam LINQ ke SQL
Perlu mengambil baris pangkalan data rawak yang memenuhi kriteria tertentu menggunakan LINQ ke SQL? Ini amat membantu apabila rekod khusus tidak kritikal, tetapi keadaan yang berkaitan adalah. Contohnya, memilih pelanggan aktif rawak.
Kaedah paling berkesan melibatkan fungsi takrif pengguna (UDF) "dummy" dalam pangkalan data.
Dalam kelas separa untuk konteks data anda, buat fungsi seperti ini:
<code class="language-csharp">partial class MyDataContext { [Function(Name="NEWID", IsComposable=true)] public Guid Random() { throw new NotImplementedException(); } }</code>
Fungsi ini bertindak sebagai penanda untuk pangkalan data; kod C# anda tidak akan memanggilnya secara langsung. Ia menandakan penggunaan fungsi rawak pangkalan data.
Gunakan UDF dalam pertanyaan LINQ to SQL anda untuk memesan baris secara rawak yang sepadan dengan syarat anda. Contoh:
<code class="language-csharp">var cust = (from row in ctx.Customers where row.IsActive // Your filter condition orderby ctx.Random() select row).FirstOrDefault();</code>
Klausa OrderBy
menggunakan ctx.Random()
untuk menyusun baris secara rawak berdasarkan fungsi NEWID()
pangkalan data. Hasilnya ialah baris rawak yang memuaskan row.IsActive
.
Kaedah ini sesuai untuk meja yang lebih kecil hingga sederhana. Untuk jadual yang sangat besar, overhed bahagian pelayan mungkin penting. Dalam senario sedemikian, lebih cekap untuk:
Skip
dan First
untuk mendapatkan semula baris tertentu.Atas ialah kandungan terperinci Bagaimana untuk mendapatkan kriteria spesifik mesyuarat rawak menggunakan LINQ ke SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!