Entity framework ile nested model update, delete, insert

Seo’ ya uyumlu başlık bulmaya çalışınca ben 🙂

Senaryomuzu kısaca anlatayım.
Bir üst tablomuz Product ve alt tablomuz ProductPrice. “Güncelle” butonuna bastığımızda gönderilen model’de product modelimiz update olacaktır. Alt tablomuz olan productPrice tablomuzda update olmayacak.
aynı anda client bazlı insert, update ve delete yaptığımızda aşağıdaki sorguda üç işlemi tek seferde yapacaktır.

Örnek Json Model
// var olan productPrice elemanlarınının state durumlarını delete yapıyoruz.
// Henüz silmedik
context.productPrice.Where(w => w.ProductId== myObject.Id).ToList()
 .ForEach(item => context.productPrice.Delete(item));
  
// İkinci aşamada model'den Idsi 0 olmayanlara state durumlarını update olarak tanımlıyoruz.
// Henüz Update etmedik
Model.ProductPrice
  .Where(x => x.Id != 0).ToList()
  .ForEach(order => context.productPrice.Update(order));

context.productPrice.Attach(myObject);
context.productPrice.Update(myObject);
await _unitOfWork.SaveChangesAsync();

Burada Put işlemi içerisine 3 işlem birden yaptırdık. Uzun uzun sorgular yazmak yerine daha kısa ve düzenlene bilir kod yazmış olduk.

Umarım faydası olmuştur.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir