menguasai entiti LINQ bergabung: Ekspresi Lambda, , dan Join
Where
dan Join
untuk mencapai matlamat ini. Walau bagaimanapun, dengan betul memohon ini, terutamanya dengan ekspresi lambda, boleh menjadi rumit. Where
dalam operasi Where
. Pertimbangkan contoh ini cuba menyertai Jadual Join
dan Posts
: Post_Metas
<code class="language-csharp">int id = 1; var query = database.Posts.Join( database.Post_Metas, post => database.Posts.Where(x => x.ID == id), // Incorrect! meta => database.Post_Metas.Where(x => x.Post_ID == id), // Incorrect! (post, meta) => new { Post = post, Meta = meta } );</code>
ke seluruh jadual (Where
dan database.Posts
) dalam ekspresi lambda database.Post_Metas
. Ini tidak cekap dan tidak betul. Klausa Join
hendaklah menapis Where
selepas menyertai.
memerlukan tiga komponen utama: Join
kaedah 1: sintaks pertanyaan linq (sql-like)
Pendekatan ini mencerminkan sintaks SQL, menawarkan kebolehbacaan yang lebih baik:
<code class="language-csharp">var id = 1; var query = from post in database.Posts join meta in database.Post_Metas on post.ID equals meta.Post_ID where post.ID == id select new { Post = post, Meta = meta };</code>
Kaedah 2: Kaedah lanjutan LINQ (sintaks fasih)
Ini menggunakan sintaks fasih kaedah lanjutan LINQ:
<code class="language-csharp">var id = 1; var query = database.Posts .Join(database.Post_Metas, post => post.ID, meta => meta.Post_ID, (post, meta) => new { Post = post, Meta = meta }) .Where(postAndMeta => postAndMeta.Post.ID == id);</code>
dan Join
anda, mengelakkan kesilapan umum untuk memohon Where
sebelum ini, anda boleh dengan cekap dan betul menyertai entiti di Linq, membuka kunci kuasa manipulasi data. Where
Atas ialah kandungan terperinci Bagaimana cara menyertai entiti di Linq dengan betul menggunakan ekspresi lambda dan `gabungan`/` di mana klausa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!