پشتیبانی از عملگر LeftJoin در NET 10.
در نسخه جدید NET 10.، پشتیبانی بومی از عملگر LeftJoin
در LINQ به این فریمورک اضافه شده است. این تغییر مهم در زمان نوشتن کوئریها در Entity Framework Core (EF Core) به شما کمک میکند تا کد سادهتری بنویسید و از پیچیدگیهای قبلی که نیازمند استفاده از ترکیب چندین متد مانند SelectMany
و GroupJoin
بود، رهایی یابید.
قبل از NET 10.:
در نسخههای قبلی EF Core، برای استفاده از عملیات LeftJoin
نیاز به ترکیب چندین متد پیچیده بود. در این روش، ابتدا با استفاده از GroupJoin
دادهها را به هم پیوند میدادیم، سپس از SelectMany
و DefaultIfEmpty
برای شبیهسازی رفتار LeftJoin
استفاده میکردیم.
مثال کد قبل از NET 10.:
var query = students
.GroupJoin(
departments,
student => student.DepartmentID,
department => department.ID,
(student, departmentList) => new { student, subgroup = departmentList })
.SelectMany(
joinedSet => joinedSet.subgroup.DefaultIfEmpty(),
(student, department) => new
{
student.student.FirstName,
student.student.LastName,
Department = department.Name ?? "[NONE]"
});
پس از اضافه شدن LeftJoin در NET 10.:
با معرفی متد
LeftJoin
در NET 10.، نوشتن کوئریها بسیار سادهتر و خواناتر شده است. دیگر نیازی به استفاده از ترکیب چندین متد نخواهید داشت، بلکه میتوانید به راحتی از این متد جدید استفاده کنید.مثال کد پس از NET 10.:
var query = context.Students
.LeftJoin(
context.Departments,
student => student.DepartmentID,
department => department.ID,
(student, department) => new
{
student.FirstName,
student.LastName,
Department = department.Name ?? "[NONE]"
});
مزایای استفاده از LeftJoin در NET 10.:
- سادگی و خوانایی بیشتر: به جای استفاده از ترکیب پیچیدهی متدها، میتوانید با یک متد ساده به راحتی
LeftJoin
را انجام دهید.- عملکرد بهتر: به دلیل بهینهسازیهای داخلی در EF Core، عملیات
LeftJoin
به شکل بهینهتری در پایگاه داده اجرا میشود.- کاهش پیچیدگی کد: به جای کدهای طولانی و پیچیده، میتوانید کدهای سادهتری بنویسید که فهم آنها برای سایر برنامهنویسان راحتتر است.
🔗 برای مطالعه بیشتر میتوانید به این لینک مراجعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#هوتن_همتی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
________
>>Click here to continue<<
