سؤال

ولدي بيان ينق التالية:

(from order in Orders.AsEnumerable()
 join component in Components.AsEnumerable()
    on order.ORDER_ID equals component.ORDER_ID
 join detail in Detailss.AsEnumerable()
    on component.RESULT_ID equals detail.RESULT_ID
 where orderRestrict.ORDER_MNEMONIC == "MyOrderText"
 select new 
            {
                Mnemonic = detail.TEST_MNEMONIC,
                OrderID = component.ORDER_ID,
                SeqNumber = component.SEQ_NUM
            }).ToList()

وأتوقع هذا لاخماد الاستعلام التالي:

select  *   
from    Orders ord (NoLock)   
        join Component comp (NoLock)
          on ord .ORDER_ID = comp.ORDER_ID
        join Details detail (NoLock)
          on comp.RESULT_TEST_NUM = detail .RESULT_TEST_NUM
where   res.ORDER_MNEMONIC = 'MyOrderText'

ولكن بدلا من ذلك الحصول على 3 استفسارات منفصلة أن تحديد كافة الصفوف من الجداول. وأنا على التخمين أن ينق ثم يتم تصفية القيم لأنني لا تحصل على القيم الصحيحة في نهاية المطاف.

والمشكلة هي أنه يأخذ WAY WAY فترة طويلة جدا لأنه هدم كافة الصفوف من جميع الجداول الثلاثة.

وأي أفكار كيف يمكنني إصلاح ذلك؟

هل كانت مفيدة؟

المحلول

وإزالة .AsEnumerable () الصورة من الاستعلام لأن هذه هي منع الاستعلام بالكامل يجري تقييمها على الخادم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top