كيفية أداء الصلات الخارجية اليسرى - LINQ في C #

Kyfyt Ada Alslat Alkharjyt Alysry Linq Fy C



لعرض سجلات متطابقة من الجدول الأيسر والجدول الأيمن في SQL ، تعد الصلة الخارجية اليسرى نوعًا من عمليات الربط المستخدمة. في LINQ ، يمكن إجراء الصلة الخارجية اليسرى باستخدام أساليب GroupJoin () و SelectMany () ، وستناقش هذه المقالة بشكل مكثف تنفيذ الصلات الخارجية اليسرى في LINQ باستخدام C #.

كيفية أداء الصلات الخارجية اليسرى في LINQ باستخدام C #

لإجراء صلة خارجية يسرى في LINQ ، يمكنك استخدام طريقة GroupJoin () لربط تسلسلين بناءً على مفتاح مشترك ثم استخدام طريقة SelectMany () لتسوية النتيجة ، إليك مثال:





باستخدام النظام ؛
باستخدام System.Linq ؛

برنامج الفصل
{
ثابت الفراغ الرئيسي ( )
{
فار اليسار = جديد [ ] { 1 و 2 و 3 } ؛
var right = جديد [ ] { 2 و 3 و 4 } ؛
نتيجة var = left.GroupJoin (
يمين،
ل = > ل
ص = > ص
( ل ، ص ) = > جديد { يسار = l ، يمين = r.DefaultIfEmpty ( ) } )
حدد العديد (
lr = > لير الحق (
ص = > جديد { يسار = lr. يسار ، يمين = r } ) ) ؛
foreach ( بند فار في نتيجة )
{
وحدة التحكم ( '{0} {1}' البند اليسار البند اليمين ) ؛
}
}
}



يقوم هذا الرمز بتنفيذ صلة خارجية يسرى على صفيفين يمين ويسار ، ويطبع النتيجة إلى وحدة التحكم. تقوم طريقة GroupJoin () بتنفيذ الوصلة و حدد العديد () الطريقة المستخدمة لتسطيح النتيجة. أخيرًا ، تتم طباعة النتيجة على وحدة التحكم باستخدام حلقة foreach ووظيفة WriteLine ():







فيما يلي مثال آخر يوضح استخدام أداء الصلات المستبعدة من خلال عرض أسماء الموظفين المعنيين والإدارات ذات الصلة. يتم تخصيص رقم لكل موظف يتم استخدامه بعد ذلك لمطابقة الإدارة ذات الصلة بالموظف المعني ، وهنا الرمز الكامل لذلك:

باستخدام النظام ؛
باستخدام System.Collections.Generic ؛
باستخدام System.Linq ؛

مساحة الاسم YourNamespace
{
برنامج الفصل
{
ثابت الفراغ الرئيسي ( خيط [ ] أرجس )
{
قائمة < اسم الموظف > موظفين = قائمة جديدة < اسم الموظف >
{
اسم الموظف الجديد { المعرف = 1 الاسم = 'نفسه' ، معرف القسم = 1 } و
اسم الموظف الجديد { المعرف = 2 الاسم = 'جون' ، معرف القسم = 2 } و
اسم الموظف الجديد { المعرف = 3 الاسم = 'كيفن' ، معرف القسم = 2 } و
اسم الموظف الجديد { المعرف = 4 الاسم = 'بوب' ، معرف القسم = 3 }
} ؛

قائمة < قسم > الأقسام = قائمة جديدة < قسم >
{
قسم جديد { المعرف = 1 الاسم = 'كتابة المحتوى' } و
قسم جديد { المعرف = 2 الاسم = 'تسويق' } و
قسم جديد { المعرف = 3 الاسم = 'هندسة' }
} ؛

var الاستعلام = من اسم التوظيف في موظفين
ينضم قسم في الإدارات
على اسم الموظف
من القسم في DepartmentGroup.DefaultIfEmpty ( )
يختار جديد { EmployeenameName = Employeename.Name، DepartmentName = department؟ .Name ؟؟ 'لا أحد' } ؛

foreach ( كانت النتيجة في استفسار )
{
وحدة التحكم ( $ 'اسم الموظف: {result.EmployeenameName} ، القسم: {result.DepartmentName}' ) ؛
}
}
}

فئة الموظف اسم
{
الرقم التعريفي العام { يحصل؛ تعيين ؛ }
اسم السلسلة العامة { يحصل؛ تعيين ؛ }
قسم كثافة العمليات العامة { يحصل؛ تعيين ؛ }
}

قسم الصف
{
الرقم التعريفي العام { يحصل؛ تعيين ؛ }
اسم السلسلة العامة { يحصل؛ تعيين ؛ }
}
}



أولاً ، يتم تقديم بيانات نموذجية تحتوي على اسم الموظف واسم الأقسام وبعد ذلك يتم إعطاء رقم خاص لكل منها. بعد ذلك يتم تنفيذ عملية الانضمام باستخدام أمر الانضمام وبعد ذلك يتم حفظ النتيجة في استعلام باسم متغير ، وبعد ذلك يتم استخدام حلقة for لطباعة أسماء وأقسام الموظفين المعنيين وسيكون إخراج الكود على هذا النحو :

خاتمة

الصلة الخارجية اليسرى هي عملية شائعة في SQL ، ويمكن أيضًا تنفيذها بسهولة باستخدام LINQ في C #. باستخدام أساليب GroupJoin () و SelectMany () ، يمكنك تنفيذ الصلات الخارجية اليسرى على تسلسلين بناءً على مفتاح مشترك. على الرغم من أن بناء الجملة الخاص بأداء الصلات الخارجية اليسرى في LINQ قد يكون من الصعب فهمه للمبتدئين ، إلا أنه لغة قوية ومرنة تسمح بإجراء الاستعلامات المعقدة بسهولة.