Şimdi Ara

Entity Framework db.SaveChanges() Çalışmıyor

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
11
Cevap
0
Favori
1.768
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar Merhaba, Katmanlı mimari ile ufak bir kütüphane otomasyonu yapıyorum. Kitap Güncelleme işleminde parametre olarak aldığım kitabı db.SaveChanges() yaptığım sırada hiç bir şekilde hata vermiyor fakat çalıştırmıyorda.Bu konuda bana yardımcı olacak arkadaşlara şimdiden çok teşekkür ederim :)
    Entity Framework db.SaveChanges() Çalışmıyor



  • quote:

    Orijinalden alıntı: oke39

    Arkadaşlar Merhaba, Katmanlı mimari ile ufak bir kütüphane otomasyonu yapıyorum. Kitap Güncelleme işleminde parametre olarak aldığım kitabı db.SaveChanges() yaptığım sırada hiç bir şekilde hata vermiyor fakat çalıştırmıyorda.Bu konuda bana yardımcı olacak arkadaşlara şimdiden çok teşekkür ederim :)
    Entity Framework db.SaveChanges() Çalışmıyor

    SavaChanges yaptığında kaydedecek veri yok ki neyi kaydetsin ?

    İncelemek istersen

    https://github.com/ErenYatkin/generic-repository-asp-mvc



    < Bu mesaj bu kişi tarafından değiştirildi ElwinVanDyke -- 30 Haziran 2017; 12:51:03 >




  • Fakat Aynı kodu Category için kullanıyorum güncelleme yapıyor.Entity Framework db.SaveChanges() Çalışmıyor



    < Bu mesaj bu kişi tarafından değiştirildi oke39 -- 30 Haziran 2017; 19:30:32 >
  • quote:

    Orijinalden alıntı: oke39

    Fakat Aynı kodu Category için kullanıyorum güncelleme yapıyor.Entity Framework db.SaveChanges() Çalışmıyor

    O tarzda update yapmanı tavsiye etmem, aşağıdaki kodu kendine göre editleyip kullanabilirsin. Benim update yaparken kullandığım ve neredeyse hiç sorun çıkarmayan yaklaşım bu.


    EntityRequest.ID = Request.Entity.ID;
    T willUpdated = this.GetByID(EntityRequest).Entity;

    _context.Entry(willUpdated).CurrentValues.SetValues(Request.Entity);
    _context.SaveChanges();




    < Bu mesaj bu kişi tarafından değiştirildi ElwinVanDyke -- 30 Haziran 2017; 22:17:57 >




  • using de yeni librarydbentity olusturmussun ondan olabilir mi? category orneginde instance olusturmamissin var olani kullanmissin.
    if'e gel, step in, db.Books'un degerini kontrol et kitap var miymis.



    < Bu mesaj bu kişi tarafından değiştirildi VatandA.Ş. -- 30 Haziran 2017; 22:26:33 >
  • Sizin gönderdiğiniz kod yapısını tam kavrayamadım biraz açıklayabilir misiniz?
  • Yok using bir değişiklik yapmıyor using ekleyip çıkarttım ama değişmedi hiç.
  • oke39 O kullanıcısına yanıt
    Entity framework ile yeni çalışmaya başladıysan yakında karşına çıkar. Cache lenmiş veri ile çalışmaktadır EF. Bu durum bir yandan iyi olabilirken diğer bir yandan da kötü olabiliyor. Aslında entity nin değerleri değiştiğinde ve save yağıldığında otomatik olarak güncellenmesi gerekirken cache leme yüzünden bu gerçekleşemiyor. Daha sonra uygulamayı kapatıp açtığınızda verilerin değiştiğini görüyorsunuz. Bu durumu ortadan kaldırabilmek için entity nin durumunu değiştirmemiz gerekmektedir.



    Yaptığımız yol ise şu; güncellenmiş veriler elimizde, o verinin veya verilerin IDsi ile ilk çnce eski veriyi alıyoruz daha sonda yeni verilerle eski verileri değiştiriyoruz. Daha sonra da kaydetmeyi tamamlıyoruz. Bu işlem yapıldığında EF otomatik olsrak state yani entity durumunu modifed olarak değiştiriyor böylece veri cachelenmek yerine tekrar çekiliyor.



    Bu en kabuledilebilir güncelleme yöntemidir. Bunun dışındaki güncelleme şekillerinde sürekli sorun çıkmaktadır. EF 6 ile tarih alanlarını güncelleme yuksrıdaki yöntem sorun çıkarmaZken standart yol hata vermektedir.



    T değişkeni generic yapılara girdiğinde karşına çıkacak. Altyapı yapıyorsan generic yapmadığın takdirde aynı kodları sürekli yazarsın. Ben ise bir metod ile her entity i güncelleyebiliyorum. Yani book update, category update, user update vs vs şeklinde modelde bulunan her class için metod yazman gerek değil mi ? Ben ise classı ı db ye yani context e atayarak her entity i otomatik olarak güncelliyorum.



    Standart güncelleme dışında başka işlemler yapacaksam özelleştirip metodu yazıyorum. Böylece zamandan tasarruf ediyorum.



    İlk mesajda verdiğim github linkini incelersen demek istediğimi anlarsın.

    < Bu ileti mobil sürüm kullanılarak atıldı >




  • Açıklaman için çok teşekkür ederim, çok yararlı oldu gerçekten. Evet github linkindeki projeye baktığımda farkettim projedeki kodlarla verdiğin kodlar aynı. Github linkinde ki proje çok işime yaradı çok teşekkürler.
  • quote:

    Orijinalden alıntı: oke39

    Açıklaman için çok teşekkür ederim, çok yararlı oldu gerçekten. Evet github linkindeki projeye baktığımda farkettim projedeki kodlarla verdiğin kodlar aynı. Github linkinde ki proje çok işime yaradı çok teşekkürler.

    Rica ederim bu arada githun projesi bana aittir. Yakında guide hazırlayacağım. İşten pek vakit bulamıyorum.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.