• 30-08-2021, 16:49:06
    #1
    Öncelikle iyi çalışmalar.
    Ben arayüzden verileri alıyorum ve controller'a gönderiyorum. Gerekli kontrolleri yaptıktan sonra; veri tabanına kaydedilmesi gerekiyor ama tüm veriler güncellenmiyor.
    Ekleme işlemi yaparken böyle bir sorun ile karşılaşmadım ama güncelleme işleminde oluyor.


    public Makale Update(Makale makale, List<int> kategoriIdleri)
    {
    using (var context = new EfContext())
    {
    List<Kategori> kategoriler = new List<Kategori>();
    foreach (int kategoriId in kategoriIdleri)
    {
    var kategori = context.Kategoriler.FirstOrDefault(x => x.Id == kategoriId);
    if (kategori != null) kategoriler.Add(kategori);
    }
    
    makale.Kategoriler = kategoriler;
    
    var updatedEntity = context.Entry(makale);
    updatedEntity.State = EntityState.Modified;
    context.SaveChanges();
    return makale;
    }
    }
    Yukarıdaki kod bloğuna breakpoint koyduğumda tüm veriler başarıyla gelmekte ama veritabanına kaydederken bazı sütunlarda güncelleme olurken bazılarında olmuyor. Çoka çok ilişkili tabloların ise hiçbiri güncellenmiyor.
    Sorun nerede olabilir?
  • 30-08-2021, 18:22:30
    #2
    Sorun çözüldü, gözden kaçırmışım. Direk controllerdan gelen nesneyi veritabnaına kaydetmeye çalıştığım için veriler doğru düzgün güncellenmiyordu.
    Include kullanarak diğer ilişkili tabloları da belirterek get ile makaleyi çektim. Ve parametre ile gelen makale nesnesindeki değerleri, veritabanından çektiğim makele nesnesinin üzerine yazdım. Sorun çözüldü.