Web Devs
641 subscribers
218 photos
22 videos
17 files
233 links
Articles, News, Jokes, Quotes, Back-End and UI/UX for web developers.
Github : https://github.com/fullStackDevsGroup
Advertising: @adsfullStackDevs
Download Telegram
SHadow Properties :


properties فیلدهایی هستند که در کلاس خود وجود ندارند، اما تحت عنوان Entity Framework عمل می کنند. آنها می توانند در عملیات create/update و migrations و شرکت کنند. مایکروسافت دو سناریوی اصلی برای ویژگی های shadow properties پیش بینی می کند:

1-اجازه دادن به لایه دسترسی به داده ها برای کار با خواصی که نباید از طریق domain model به بقیه برنامه در معرض قرار گیرد
2-اجازه دادن به توسعه دهندگان به طور موثر افزودن خواص به کلاسی که کد منبع را ندارند

Shadow properties در رویداد OnModelCreating تعریف شده است که به عنوان یک روش قابل لغو در DBContext در معرض قرار می گیرد. در اینجا یک مثال از attach کردن یک پراپرتی از نوع DateTime به نام LastUpdated به Blog entity است.

protected override void OnModelCreating(ModelBuilder modelBuilder)

{

    modelBuilder.Entity<Blog>().Property<DateTime>("LastUpdated");

}


یک استفاده معمول برای این ویژگی، هنگام انجام عملیات ذخیره، به طور خودکار Property LastUpdated را تنظیم می کند. برای انجام این کار، می توانید DBContext.ChangeTracker را برای دریافت لیستی از اشیاء DBEntry استفاده کنید. از آنجا می توانید نوشت:
foreach (var item in modifiedEntries)

{

    Item.Property("LastUpdated ").CurrentValue = DateTime.Now;

}


معمولا این کار با بالا بردن روش SaveChanges () در کلاس DBContext انجام می شود. با قرار دادن آن در اینجا، احتمال آن را برای بعضی، اما نه لزوما تمام مکان هایی که سوابق را بهروزرسانی می کنید، حذف می کنید.

در حالی که ChangeTracker برای تغییر رویدادهای ذخیره عالی است، زمانی که میخواهید به Shadow properties دسترسی پیدا کنید بدون استفاده از DBEntry به طور مستقیم وجود دارد. این را می توان با استفاده از عملکرد EF.Property به عنوان نشان داده شده در زیر انجام می شود:

EF.Property<DateTime>(entity, " LastUpdated ")





لینک فیلم آموزشی :
https://www.lynda.com/Entity-Framework-tutorials/Using-Shadow-Properties/510080/560683-4.html

#Shadow_Properties
#Mvc
#Entity_framework




@ArmanAbi