سلام
آموزشهای C# Advanced رو دیدم و واقعا استاد مدائنی عالی توضیح دادند و خیلی کمکم کرد.
اما به یک مشکل برخورد کردم و دیتاها رو از دست دادم و اون اینه که وقتی دارم update میکنم همه فیلدها رو update میکنه، در صورتی که من میخوام فقط همین سه تا فیلد رو تغییر بدم
و بقیه رکوردها null میشه
با این قطعه کد دارم عملیات UPdate رو انجام میدم
private void UpdateDb(long id, long isSend, int LastReadReportReference) { using (UnitOfWork db = new UnitOfWork()) { Person person = new Person() { senttime = DateTime.Now.ToString(), status = "sent", reference = LastReadReportReference.ToString(), }; person.id = id; db.SendRepository.Update(person); db.Save(); } }
و کد GenericRepository
public virtual void Update(TEntity entity) { //if (_db.Entry(entity).State == EntityState.Detached) //{ // _dbset.Attach(entity); //} _dbset.Attach(entity); _db.Entry(entity).State = EntityState.Modified; }
این کد رو چطور باید تغییر بدم؟
سلام
با توجه به کدی که شما نوشته بودی طبیعتا هم باید همین اتفاق بیفتد
کد زیر را مطالعه بفرما
public bool Edit(T entity) { try { var exist = context.Set<T>().Find(entity.ID); if (exist != null) { context.Entry(exist).CurrentValues.SetValues(entity); context.SaveChanges(); return true; } else return false; } catch (Exception ex) { throw ex; } }
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)