مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

hamzehsh

عضویت از 1396/01/12

update کردن فقط یک فیلد

  • شنبه 17 فروردین 1398
  • 15:25
تشکر میکنم

سلام

آموزشهای 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;
        }

این کد رو چطور باید تغییر بدم؟

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

AmirGhasemi

عضویت از 1392/02/25

  • یکشنبه 18 فروردین 1398
  • 07:51

سلام

با توجه به کدی که شما نوشته بودی طبیعتا هم باید همین اتفاق بیفتد

کد زیر را مطالعه بفرما

 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;
            }
        }

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)