مشکل استفاده از 2 کلاس همزمان repository
سلام.
وقتی در یک اشکن post بخوام بصورت همزمان از 2 ریپوزیتوری استفاده کنم دچار مشکل می شم. و ارور بر می خرم
یعنی اگه بخوام از ریپوزیتوری های findbyid و edit که نوشتم بصورت همزمان استفاده کنم به ارور زیر بر می خورم .
cannot be tracked because another instance with the same key value for {'Id'} is already being tracked.
در اینجا باید چی کار انجام داد؟
نقل قول: مشکل استفاده از 2 کلاس همزمان repository
شما دارید از EF استفاده میکنید و این خطای سیستم رهگیری ef هست
اگر کدهاتون گذاشته بودید جهت راهنمایی بهتر بود
موجودیتی که بر روی ان عمل ویرایش انجام دادید را باید از سیستم رهگیری جدا کنید
_Entry(model).State = EntityState.Added;
_Entry(model).State = EntityState.Detached;
نقل قول: مشکل استفاده از 2 کلاس همزمان repository
نقل قول:
نوشته شده توسط
ali_md110
شما دارید از EF استفاده میکنید و این خطای سیستم رهگیری ef هست
اگر کدهاتون گذاشته بودید جهت راهنمایی بهتر بود
موجودیتی که بر روی ان عمل ویرایش انجام دادید را باید از سیستم رهگیری جدا کنید
_Entry(model).State = EntityState.Added;
_Entry(model).State = EntityState.Detached;
سلام علی اقا
public bool Edit(Slider model)
{
try
{
_db.Entry(model).State = EntityState.Modified;
_db.SaveChanges();
return true;
}
catch (Exception exception)
{
var ex = exception.Message;
return false;
}
}
public Slider FindById(Guid? id)
{
var model= _db.Sliders.Find(id);
return model;
}
وقتی در یک action هر دوتا رو همزمان استفاده کنم بهم این ارور رو میده.
نقل قول: مشکل استفاده از 2 کلاس همزمان repository
سیستم رهگیری ef نسبت به متد find حساس نیست چون find فقط یک واکشی هست و با متد find داده ای در حال ویرایش و اضافه و حذف نیستیم
Attach را جهت ویرایش بکار ببرید{
_db.Sliders.Attach(model);
_db.Entry(model).State = EntityState.Unchanged;
_db.SaveChanges();