حسین سلیمانی
حسین سلیمانی
خواندن ۱ دقیقه·۱۰ ماه پیش

مفهوم Tracking در EFCore

بسم الله الرحمن الرحیم

وقتی طلاعات را با استفاده از efcore از دیتا بیس به صورت ابجکت دریافت میکنید به صورت پیش فرض efcore اطلاعات شما را track می کند یعنی اینکه هر تغییری که شما در ان متغیر ایجاد کنید بعد از سیو کردن در دیتا بیس نیز اعمال می شود.

نکته : track کردن فقط شامل جدول هایی می شود که key داشته باشند .
مثال :

در مثال زیر ما جدول Blogs ردیفی که ایدی 1 را دارد را فراخوانی می کنیم و در متغیری به اسم blog قرار می دهیم. در خط دوم ما تغییراتی در متغیر که ساختیم ایجاد میکنیم و از انجایی که ef هر کاری که ما با این متغیر می کنیم را رصد می کند بعد از ذخیره تغییرات در خط سوم با دستور "SaveChanges" دیتا بیس نیز اپدیت می شود.

https://gist.github.com/hossien014/0f6af82741bd8a279d3ac175bcee501f#file-gistfile1-txt

اگر بخواهیم اطلاعات track نشود باید از فانکشن AsNoTracking() استفاده کنیم.

https://gist.github.com/hossien014/09357aaa7f3392ba91b89eaad7d1906e

اگر بخواهید به صورت پیشرف برای یک کانتکس no tracking داشته باشیم باید مانند کد زیر عمل کنیم

https://gist.github.com/hossien014/ca61e270a693f76959c02ef6f25abea7

برای اینکه tracking را به صورت کلی از حالت پیشفرض برداردید باید در فایل dbcontext خود مانند زیر عمل کنید

https://gist.github.com/hossien014/b0dad5a4d6853f56e448386fc2f4734a


asp netentity frameworkormدیتا بیسc
برنامه نویس hossien014.github.io
شاید از این پست‌ها خوشتان بیاید