CodeShot

Tracking در مقابل AsNoTracking

Tracking تغییرات موجودیت‌ها را نگه می‌دارد؛ AsNoTracking فقط برای خواندن داده است و سریع‌تر اجرا می‌شود.

ویژگیTrackingAsNoTracking
Change Trackingداردندارد
سرعتکمتربیشتر
مصرف حافظهبیشترکمتر
مناسب Updateبلهخیر
مناسب گزارشخیربله

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

وقتی قرار است داده را ویرایش کنید.

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

برای گزارش‌ها و صفحات فقط خواندنی.

مثال Tracking

var users = context.Users .AsNoTracking() .ToList();

مثال AsNoTracking

فراموش کردن AsNoTracking در Queryهای ReadOnly.

اشتباه رایج

فراموش کردن AsNoTracking در Queryهای ReadOnly.

جمع‌بندی

Read → AsNoTracking

Update → Tracking