CodeShot
Seniorسختی 4 از ۵· در 78٪ مصاحبه‌های این حوزه پرسیده شده

تفاوت IEnumerable و IQueryable چیست؟

نشان کردن

پاسخ کوتاه

IEnumerable کوئری را در حافظه (Client) اجرا می‌کند؛ IQueryable کوئری را به منبع داده منتقل و آنجا اجرا می‌کند.

پاسخ کامل

با IQueryable فیلترها و شرط‌ها به SQL ترجمه و در دیتابیس اجرا می‌شوند (کارآمدتر برای داده حجیم)، در حالی که IEnumerable ابتدا همه داده را می‌خواند و بعد در حافظه برنامه فیلتر می‌کند.

اشتباه رایج

❌ استفاده از .ToList() زودهنگام روی یک IQueryable قبل از اعمال فیلترها — کل داده از دیتابیس خوانده می‌شود.