مشکل بروزرسانی در EF Core
با سلام
برای بروزرسانی داده های یک جدول ایجاد شده با ef core بطوریکه یک ارتباط یک به چند بین این جدول با داده های جدول دیگه برقرار هست و به نوعی میشه گفت این جدول والد برای جداول فرزندهای خودشه اما مشکل اینجانس که پس از هر بار بروزرسانی داده های جدول والد کلیه داده های سمت چند پاک میشن وقتی تریس میگرم مقدار پراپرتی مربوط به navigation با حدول فرزندش مقدار Null داره
آیا برای بروزرسانی باید مقادیر حدول فرزند هم Include بشن ؟
نمونه کد نوشته شده برای بروزرسانی در یک کلاس generic repository
public virtual async Task<T> Update(object entityKey, T editedEntity, string[] includes)
{
var current = await FindEntity(entityKey);
if (current != null)
_unitOfWork.Context.Entry(current).State = EntityState.Detached;
current = editedEntity;
DbSet.Update(current);
var commit = await _unitOfWork.Commit();
return commit > 0 ? current : null;
}
نقل قول: مشکل بروزرسانی در EF Core
سلام فکر کنم کلا این فروم مدیر نداره !!!
بریم سراغ جواب برای بروزرسانی در EF Core برای زمانیکه شما بین دو جدول ارتباط یک به چند دارین و برای همین در صورتیکه از Entry برای بررسی change tracking استفاده کنین برای نسخه های کلاسیک و قبل از EF Core برای خود موجودیت اصلی به همراه تمامی وابستگی های اون پیمایش میشدن در حالیکه در EF Core فقط موجودیت اصلی رو track میکنه و نه تمامی جداول وابسته به اون که اصطلاحا میگیم کل graph پیمایش نمیشه به همین دلیل بعد از بروزرسانی تمامی داده های جداول طرف چند حذف میشن
_context.Entry(entity).State = EntityState.Modified;
برای همین بجای دستور بالا از Update در EF Core استفاده میشه که کل گراف پیمایش میشه و قابلیت جالب دیگه توی ef core آپدیت کردن چندین entity با دستور UpdateRange هست
https://www.entityframeworktutorial....h-ef-core.aspx