CodeShot

Include در مقابل Select Projection

در EF Core هر دو برای دریافت داده مرتبط استفاده می‌شوند، اما Projection معمولاً Performance بهتری دارد.

ویژگیIncludeSelect Projection
نوع خروجیEntityDTO/Object
Performanceمتوسطبهتر
کنترل دادهکمتربیشتر
مناسب APIکمتربیشتر
Query سادهبلهبله

کِی از Include استفاده کنیم؟

وقتی Entity کامل نیاز دارید.

کِی از Select Projection استفاده کنیم؟

وقتی فقط چند فیلد برای نمایش نیاز دارید.

مثال Include

var orders = context.Orders .Select(x => new { x.Id, CustomerName = x.Customer.Name });

مثال Select Projection

var orders = context.Orders .Include(x => x.Customer) .ToList();

اشتباه رایج

استفاده زیاد از Include و دریافت حجم زیادی از داده.

جمع‌بندی

Entity کامل → Include

DTO/ViewModel → Projection