CodeShot
Midسختی 3 از ۵· در 80٪ مصاحبه‌های این حوزه پرسیده شده

تفاوت IEnumerable و IQueryable از نظر Performance چیست؟

نشان کردن

پاسخ کوتاه

IEnumerable پردازش را در Memory انجام می‌دهد؛ IQueryable Query را به Provider مثل SQL منتقل می‌کند.

پاسخ کامل

وقتی از IQueryable<T> (مثل context.Users) استفاده می‌شود، فیلترهای LINQ به SQL ترجمه و در دیتابیس اجرا می‌شوند که برای داده‌های حجیم بسیار کارآمدتر است. IEnumerable ابتدا همه داده را می‌خواند و بعد در Memory برنامه فیلتر می‌کند.

مثال کد

IQueryable users = context.Users;