نمایش نتایج 1 تا 2 از 2

نام تاپیک: مورد استفاده از AsNoTracking

  1. #1

    Question مورد استفاده از AsNoTracking

    من با وجود مطالعه چند مقاله ولی باز هم دقیق متوجه نشدم کی باید از AsNoTracking در EF استفاده کنیم و کی استفاده نکنیم.



  2. #2
    کاربر دائمی آواتار ali_md110
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شیراز
    پست
    1,181

    نقل قول: مورد استفاده از AsNoTracking

    وقتی یک لیست از دیتابیس واکشی میکنید اگر AsNoTracking بکار نبریم رکورد یا رکوردها زیر نظر سیستم ردیابی دیتاکانتکست یا EF خارج میشه


    و هنگام حذف یا ویرایش یک رکورد از این لیست واکشی شده نیاز هست دوباره به کانتکست بگیم مثلا رکورد شماره 1 که ویرایش کردیم وضعیت اون رکورد ویرایش شده به تغییر یافته تغییر بده

    فرض کنیم با یک حلقه foreach رکورهای لیست رو پیمایش میکنیم و میخایم رکورد اول رو ویرایش کنیم
    برای این کار دو روش هست
    یکی اینکه باید با دستوراتی مثل FirstOrDefault رکوردی که میخایم ویرایش کنیم درون حلقه در کانتکست جستجو بزنیم و رکورد بازیافتی را تعییر بدیم و سپس savechange بزنیم
    و روش دوم اینه که مثلا با یک حلقه foreach رکوردی که ویرایش کردیم بدون دستور firstordefaultپس از ویرایش یکی از اعضای حلقه ابتدا دستور Attach و سپس دستور Entry(entity).State = EntityState.Modified رو اجرا کنیم
    مثل زیر
    [CODE]
    foreach (var data in list)
    {

    _context.Entry(data).State=EntityState.Modified;
    _dbset.Attach(data);


    }

    حالا اگر لیستی با AsNotracking بدست آوردیم برای ویرایش کردن چنانچه یک حلقه Foreach بزنیم و مثلا رکورد اول رو ویرایش کنیم فقط کافیه Savechange دیتاکانتکست رو صدا بزنیم و دیگه نیاز به

    context.Entry(data).State=EntityState.Modified;
    _dbset.Attach(data);

    نیست
    ولی اگر هم صدا زده بشه اشکالی نداره و ضراحتا به سیستم ردیابی ef اعلان کرده ایم فلان رکورد در حالت ویرایش قرار گرفته است
    پس نتیجه میگیریم هر وقت خواستیم یک لیست واکشی شده رو ویرایش یا حذف کنیم از AsNoTracking استفاده کنیم
    ولی اگر خواستیم یک لیست نمایشی فقط خواندنی داشته باشیم از AsNoTracking استفاه میکنیم
    در واقع وقتی از AsNoTracking استفاده میکنیم ef یک لایه یا پوسته بر روی رکوردها میکشه و تغییرات رکوردها رو زیر نظر میگیره و این یک کم سرعت رو هم پایین میاره
    آخرین ویرایش به وسیله ali_md110 : پنج شنبه 15 تیر 1396 در 21:48 عصر

تاپیک های مشابه

  1. تبدیل بانک مورد استفاده از اکسس به SQL Server
    نوشته شده توسط mohammadgij در بخش VB.NET
    پاسخ: 2
    آخرین پست: شنبه 03 اردیبهشت 1384, 18:16 عصر
  2. نظرخواهی در مورد استفاده از Attach, Create, BackUp
    نوشته شده توسط Mohammad S در بخش SQL Server
    پاسخ: 6
    آخرین پست: چهارشنبه 03 تیر 1383, 12:28 عصر
  3. سوال در مورد استفاده از فیلتر بر روی Table
    نوشته شده توسط مهندس در بخش برنامه نویسی در Delphi
    پاسخ: 2
    آخرین پست: چهارشنبه 27 خرداد 1383, 12:55 عصر
  4. یک سئوال فوری در مورد استفاده از دکمه های رنگی
    نوشته شده توسط AliReza-n در بخش برنامه نویسی در 6 VB
    پاسخ: 4
    آخرین پست: سه شنبه 26 خرداد 1383, 18:52 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •