سلام
چطوری میشه رکوردی رو در پایگاه داده با استفاده از EF آپدیت کرد به شرطی که اونهایی که null هستند در آپدیت اثری نداشته باشند.
فرض کنید view model از کاربر دریافت شده که بعضی آیتم ها ویرایش نشدند و null ارسال شدند
میخوام نیاد اون ستون رو null کنه و اون رو بی اثر رها کنه
ممنون
شرط بزارید اونهایی که != null هستند را واکشی کنید
کتاب entity در سایت هست
استاد من منظورم رو اشتباه رسوندم به عرضتون
من برای آپدیت یک مخزن جنریک دارم و اون میاد مدل 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 آپدیت میشه
در این حالت بهتره از EF استفاده نکنید
میتونید از Dapper استفاده کنید تا فقط اون فیلد مورد نظر را ویرایش کنید
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)