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

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

کاربر سایت

salman_b

عضویت از 1396/02/18

آپدیت در EF

  • چهارشنبه 13 تیر 1397
  • 17:01
تشکر میکنم

سلام

چطوری میشه رکوردی رو در پایگاه داده با استفاده از EF آپدیت کرد به شرطی که اونهایی که null هستند در آپدیت اثری نداشته باشند.

فرض کنید view model از کاربر دریافت شده که بعضی آیتم ها ویرایش نشدند و null ارسال شدند

میخوام نیاد اون ستون رو null کنه و اون رو بی اثر رها کنه

ممنون

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

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

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 13 تیر 1397
  • 18:20

شرط بزارید اونهایی که != null هستند را واکشی کنید 

کتاب entity در سایت هست 

کاربر سایت

salman_b

عضویت از 1396/02/18

  • چهارشنبه 13 تیر 1397
  • 19:06

استاد من منظورم رو اشتباه رسوندم به عرضتون

من برای آپدیت یک مخزن جنریک دارم و اون میاد مدل T entity رو دریافت میکنه و آپدیت رو انجام میده

حالا من سمت api از کاربر اطلاعاتی رو که میخواد آپدیت کنه رو دریافت میکنم

فرض کنید کاربر فقط میاد نام شخص رو برای آپدیت ارسال میکنه و نام خانوادگی Null دریافت میشه.

حالا فقط باید نام در دیتابیس آپدیت شه و این فیلدی که از کاربر دریافت کردیم و Null بوده در واقع کاربر قصد آپدیت رو نداشته

اما در این صورت نام خانوادگی در دیتابیس که قبلا مقدار داشته حالا با Null آپدیت میشه

من میخوام این اتفاق نیفته.

        MyEntities dbContext;
        DbSet<T> dbSet;        

        public void Update(T entity)
        {
            /*
                entity is:
                {
                    "Id":"1",
                    "Name":"Salman",
                    "Family":""
                }
            */
            dbSet = dbContext.Set<T>();
            dbSet.Attach(entity);
            dbContext.Entry(entity).State = EntityState.Modified;
        }

خب در این کد چون فامیلی دریافت نشده به صورت اتومات null هستش و فامیلی در دیتابیس هم با null‌ آپدیت میشه

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 13 تیر 1397
  • 22:25

در این حالت بهتره از EF استفاده نکنید

میتونید از Dapper استفاده کنید تا فقط اون فیلد مورد نظر را ویرایش کنید

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

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

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

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