در سیستمهای Disconnected، یعنی زمانی که ارتباط دائم بین Context و Entityها وجود ندارد (مثل سیستمهای مبتنی بر WCF و SOA) باید از Entity Self Tracking استفاده کنید که برای اولین بار در .Net4 و VS2010 معرفی شد و این امکان رو به شما میده تمام تغییرات موجود در Entity + وضعیت Entity مثل Added و Deleted و Modified را به سمت سرور ارسال کنید.
هر تغییری رو که در خواص یک کلاس اعمال کنید مقدار جدید و مقدار قدیم به علاوه نام Property در خود مدل ، Track میشوند و تمام این اطلاعات همراه Entity به سرور ارسال شده و در سمت سرور هم یک Extension Method به نام ApplyChanged برای ObjectContext وجود داره که با توجه به تغییرات و State هر Entity دادهها رو ذخیره میکنه.
در ضمن شما از طریق دو متد StopTracking و StartTracking میتونید تمام تغییرات Entity رو استارت یا متوقف کنید.
فقط نکته مهم اینه که استفاده از این روش کمی هزینه بر است (چون هر Entity تمام تغییرات خود را در 2 Dictionary به نامهای OriginalValueCollection و CurrentValueCollection ذخیره میکنه در نتیجه هنگام انتقال دادهها باید حواستون به حجم دادههای ارسالی هم باشه.)
در ضمن در این حالت دیگه Lazy Loading ساپورت نمیشه و فقط میتونید از Include استفاده کنید.