برای حالت استفاده مستقیم از ObjectContext:
var context = new NorthwindDataContext();
context.tblCities.MergeOption = MergeOption.NoTracking;
واقعیت این است که یک EF بیشتر وجود خارجی ندارد. سورس EF هم
در دسترس است:
public virtual IInternalQuery<TElement> AsNoTracking()
{
return (IInternalQuery<TElement>) new InternalQuery<TElement>(this._internalContext, (ObjectQuery) DbHelpers.CreateNoTrackingQuery((ObjectQuery) this._objectQuery));
}
public static IQueryable CreateNoTrackingQuery(ObjectQuery query)
{
IQueryable queryable = (IQueryable) query;
ObjectQuery objectQuery = (ObjectQuery) queryable.Provider.CreateQuery(queryable.Expression);
objectQuery.MergeOption = MergeOption.NoTracking; // اینجا کار خاموش سازی ردیابی انجام شده
return (IQueryable) objectQuery;
}
همانطور که مشاهده میکنید، متد الحاقی AsNoTracking در پشت صحنه همان کار تنظیم MergeOption = MergeOption.NoTracking رو انجام میده.