Include در مقابل Select Projection
در EF Core هر دو برای دریافت داده مرتبط استفاده میشوند، اما Projection معمولاً Performance بهتری دارد.
| ویژگی | Include | Select Projection |
|---|---|---|
| نوع خروجی | Entity | DTO/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
