Rumah > pangkalan data > tutorial mysql > Mengapakah LINQ ke SQL Melemparkan Ralat 'Sekatan Penggunaan Urutan Tempatan' Apabila Menyertai Koleksi Tempatan?

Mengapakah LINQ ke SQL Melemparkan Ralat 'Sekatan Penggunaan Urutan Tempatan' Apabila Menyertai Koleksi Tempatan?

Linda Hamilton
Lepaskan: 2024-12-27 21:36:15
asal
584 orang telah melayarinya

Why Does LINQ to SQL Throw a

Ralat LINQ ke SQL: Sekatan Penggunaan Jujukan Setempat

Dalam LINQ ke SQL, pengendali pertanyaan tidak boleh menggunakan jujukan setempat kecuali Contains() pengendali. Ralat ini sering timbul apabila cuba melakukan cantuman antara sumber SQL dan sumber tempatan.

Coretan kod yang disediakan menunjukkan gabungan antara jadual Shop.Sections dan koleksi setempat, obj.SectionObjects. Walau bagaimanapun, operasi ini tidak sah, mengakibatkan ralat: "Jujukan tempatan tidak boleh digunakan dalam LINQ kepada pelaksanaan SQL pengendali pertanyaan kecuali operator Contains()."

Penyelesaian: Pengambilan Data Sebelum Sertai

Untuk menyelesaikan ralat ini, dapatkan semula data SQL ke dalam ingatan sebelum cuba bergabung. Dalam senario ini, kami tidak melakukan gabungan benar tetapi pertanyaan "pilih...di mana...pilih masuk". Ini boleh dicapai menggunakan kaedah Contains():

var SE = Shop.Sections
            .Where(s => obj.SectionObjects
                           .Select(so => so.SectionId)
                           .Contains(s.SectionId))
            .ToList();
Salin selepas log masuk

Pertanyaan ini diterjemahkan kepada:

select * from Sections where sectionId in (...)
Salin selepas log masuk

di mana senarai ID dalam klausa in diperoleh daripada koleksi objek setempat . Pendekatan ini memastikan bahawa semua data yang digunakan dalam pertanyaan adalah sebahagian daripada sumber SQL, menyelesaikan ralat.

Atas ialah kandungan terperinci Mengapakah LINQ ke SQL Melemparkan Ralat 'Sekatan Penggunaan Urutan Tempatan' Apabila Menyertai Koleksi Tempatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan