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

چرا EF Core از Expression Tree استفاده می‌کند؟

نشان کردن

پاسخ کوتاه

چون باید Lambda را بررسی و به SQL تبدیل کند؛ با یک Delegate ساده امکان تحلیل ساختار Query وجود ندارد.

پاسخ کامل

EF Core نیاز دارد بداند داخل یک Lambda چه شرطی نوشته شده تا بتواند آن را به یک Query معادل SQL ترجمه کند. این تحلیل فقط با داشتن ساختار درختی عبارت (Expression Tree) ممکن است؛ یک Delegate کامپایل‌شده دیگر قابل تحلیل نیست.