View Full Version : مشکل استفاده از 2 کلاس همزمان repository
r4hgozar
شنبه 25 اسفند 1397, 22:14 عصر
سلام.
وقتی در یک اشکن post بخوام بصورت همزمان از 2 ریپوزیتوری استفاده کنم دچار مشکل می شم. و ارور بر می خرم
یعنی اگه بخوام از ریپوزیتوری های findbyid و edit که نوشتم بصورت همزمان استفاده کنم به ارور زیر بر می خورم .
cannot be tracked because another instance with the same key value for {'Id'} is already being tracked.
در اینجا باید چی کار انجام داد؟
ali_md110
یک شنبه 26 اسفند 1397, 13:33 عصر
شما دارید از EF استفاده میکنید و این خطای سیستم رهگیری ef هست
اگر کدهاتون گذاشته بودید جهت راهنمایی بهتر بود
موجودیتی که بر روی ان عمل ویرایش انجام دادید را باید از سیستم رهگیری جدا کنید
_Entry(model).State = EntityState.Added;
_Entry(model).State = EntityState.Detached;
r4hgozar
دوشنبه 27 اسفند 1397, 23:18 عصر
شما دارید از 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 هر دوتا رو همزمان استفاده کنم بهم این ارور رو میده.
ali_md110
پنج شنبه 01 فروردین 1398, 16:52 عصر
سیستم رهگیری ef نسبت به متد find حساس نیست چون find فقط یک واکشی هست و با متد find داده ای در حال ویرایش و اضافه و حذف نیستیم
Attach را جهت ویرایش بکار ببرید{
_db.Sliders.Attach(model);
_db.Entry(model).State = EntityState.Unchanged;
_db.SaveChanges();
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.