Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya dapat memasukkan entiti yang berkaitan dengan klausa di mana dalam pertanyaan EF?

Bagaimanakah saya dapat memasukkan entiti yang berkaitan dengan klausa di mana dalam pertanyaan EF?

Linda Hamilton
Lepaskan: 2025-02-01 13:51:10
asal
910 orang telah melayarinya

How Can I Efficiently Include Related Entities with a Where Clause in an EF Query?

Mengoptimumkan pertanyaan EF: Penapisan entiti yang berkaitan dengan termasuk

Artikel ini menangani cabaran untuk mendapatkan entiti berkaitan dengan efisien dengan klausa

dalam pertanyaan Rangka Kerja Entiti (EF). Matlamatnya adalah untuk mengelakkan pelbagai perjalanan pangkalan data. Where

Senario ini melibatkan dua entiti:

dan Bus, dengan Person mempunyai harta navigasi koleksi untuk Bus. Objektifnya adalah untuk mengambil semua bas yang memandu, bersama -sama dengan hanya penumpang yang terjaga. Person

Pendekatan yang tidak cekap yang sama menghasilkan pelbagai panggilan pangkalan data. Penyelesaian yang lebih efisien melibatkan melumpuhkan pemuatan malas dan memunggah entiti berkaitan dengan klausa

yang ditapis dalam pertanyaan. Where

Inilah contoh yang menunjukkan pendekatan ini:

Context.Configuration.LazyLoadingEnabled = false;
var buses = Context.Busses.Where(b => b.IsDriving)
            .Select(b => new
            {
                Bus = b,
                AwakePassengers = b.Passengers.Where(p => p.Awake)
            })
            .AsEnumerable()
            .Select(x => x.Bus)
            .ToList();
Salin selepas log masuk
Kod ini mula -mula mengambil bas memandu dan penumpang mereka yang terjaga dalam satu pertanyaan pangkalan data. Panggilan

menghasilkan hasil memori, yang membolehkan EF untuk mewujudkan hubungan dengan betul. Akhirnya, hanya objek AsEnumerable() dipilih dan dikembalikan. Bus

Pertimbangan penting:

Kaedah ini, sementara berkesan dalam EF6, mungkin memerlukan pelarasan untuk banyak hubungan dan dalam teras EF. EF Core menawarkan ciri -ciri seperti penapis pertanyaan global yang dapat menyediakan penyelesaian alternatif untuk senario yang lebih kompleks. Untuk maklumat terperinci mengenai teknik canggih ini dan mengendalikan banyak hubungan yang banyak, sila rujuk sumber asal.

Atas ialah kandungan terperinci Bagaimanakah saya dapat memasukkan entiti yang berkaitan dengan klausa di mana dalam pertanyaan EF?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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