SHadow Properties :
properties فیلدهایی هستند که در کلاس خود وجود ندارند، اما تحت عنوان Entity Framework عمل می کنند. آنها می توانند در عملیات create/update و migrations و شرکت کنند. مایکروسافت دو سناریوی اصلی برای ویژگی های shadow properties پیش بینی می کند:
1-اجازه دادن به لایه دسترسی به داده ها برای کار با خواصی که نباید از طریق domain model به بقیه برنامه در معرض قرار گیرد
2-اجازه دادن به توسعه دهندگان به طور موثر افزودن خواص به کلاسی که کد منبع را ندارند
Shadow properties در رویداد OnModelCreating تعریف شده است که به عنوان یک روش قابل لغو در DBContext در معرض قرار می گیرد. در اینجا یک مثال از attach کردن یک پراپرتی از نوع DateTime به نام LastUpdated به Blog entity است.
یک استفاده معمول برای این ویژگی، هنگام انجام عملیات ذخیره، به طور خودکار Property LastUpdated را تنظیم می کند. برای انجام این کار، می توانید DBContext.ChangeTracker را برای دریافت لیستی از اشیاء DBEntry استفاده کنید. از آنجا می توانید نوشت:
معمولا این کار با بالا بردن روش SaveChanges () در کلاس DBContext انجام می شود. با قرار دادن آن در اینجا، احتمال آن را برای بعضی، اما نه لزوما تمام مکان هایی که سوابق را بهروزرسانی می کنید، حذف می کنید.
در حالی که ChangeTracker برای تغییر رویدادهای ذخیره عالی است، زمانی که میخواهید به Shadow properties دسترسی پیدا کنید بدون استفاده از DBEntry به طور مستقیم وجود دارد. این را می توان با استفاده از عملکرد EF.Property به عنوان نشان داده شده در زیر انجام می شود:
لینک فیلم آموزشی :
https://www.lynda.com/Entity-Framework-tutorials/Using-Shadow-Properties/510080/560683-4.html
#Shadow_Properties
#Mvc
#Entity_framework
@ArmanAbi
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
Lynda.com - from LinkedIn
Using Shadow Properties
Join Richard Goforth for an in-depth discussion in this video Using Shadow Properties, part of Accessing Existing Databases with Entity Framework Core