[ad_1]
لدي جدولين في قاعدة بيانات أريد دمجهما والعمل مع تلك البيانات.
لذلك استخدمت مقتطف الكود هذا:
var listOfFoundRespIds = (from a in context.Adresses join e in context.ExtraData on a.LFD equals e.lfd where a.PROJID == 2048 select new { RESPID = e.str03, LFD = e.lfd, PROJID = a.PROJID }) .ToList();
يحتوي جدول قاعدة البيانات نفسه على 31.966.037 إدخالًا.
أثناء تصحيح الأخطاء (مباشرة بعد تنفيذ التعليمات البرمجية) بدأت تشغيل iEnumeration Viewer ونظرت في context.Adresses وقمت بتصدير ملف CSV. كان هناك 995.101 إدخالاً في تلك القائمة. لذا، في وقت التنفيذ، لا أملك كافة الإدخالات من الجدول الرئيسي للعمل معها.
ربما أي شخص لديه أي فكرة، وكيفية الحصول على ثابتة؟
ما حاولت:
تم التحقق من عارض IEnumeration والخروج بتنسيق CSV
تحقق مرة أخرى من قاعدة البيانات
اقرأ المستندات حول Entity Framework وأشياء SQL الأخرى.
الحل 1
أنت تقوم بأداء INNER JOIN
– سوف تحصل على النتائج فقط من Addresses
الجدول الذي له سجل مماثل في ExtraData
طاولة.
إذا كنت تريد كافة السجلات من Addresses
الجدول، حتى لو لم يكن لديهم سجل مطابق في ExtraTable
، فأنت بحاجة إلى إجراء LEFT JOIN
.
تنفيذ الصلات الخارجية اليسرى (LINQ في C#) – C# | مايكروسوفت تعلم[^]
from a in context.Adresses join ed in context.ExtraData on a.LFD equals e.lfd into edg from e in ed.DefaultIfEmpty() where a.PROJID == 2048 select new { RESPID = e.str03, LFD = e.lfd, PROJID = a.PROJID }
[ad_2]
コメント