Osman KURT

Yazılım Uzmanı | MVC Eğitmeni

ASP.Net MVC Entity Framework Select, Insert, Update ve Delete işlemi

Microsoftbazı projeleine yıllar boyu destek verirken bazı projelerinide elinin tersi ile itiyor ve kısa sürede öldürebiliyor. Bunlara örnek vermek gerekirse XP :)

XP uzun yıllar hayatımızda olan bir işletim sistemi. Belki de belli bir zamana kadar microsoft'un bizlere kazandırdığı en değerli ürünüydü ama herşey gibi onunda sonu geldi tabi. Diğer türlü öldürdüğü yazılımlarına teknolojilerine gelirsek mesleğimle ilgili olan linq teknolojisi. Zamanın öğreneilmesi gereken bir teknolojiydi ama microsoft ani bir kararla artık bu teknolojiyi update etmeyeceğini ve yoluna entity framework ile devam edeceğini açıkladı.

Benimde gerçekten kullanmaktan zevk aldığım bir teknoloji her ne kadar arka kısımda bazı "?" işaretleri olsada kullanmakatan zevk alıyorum diyebilirim.

Bu yazımda size kısaca insert, update ve delete işlemlerinden bahsedeceğim. İlk olarak insert işleminden başlayalım isterseniz.

Firmalar adında bir tablomuz olsun ve bu tablomuzun FirmaAdi alanına 1 adet kayıt eklemek isteyelim.

Firmalar FrAdd = new Firmalar();
FrAdd.FirmaAdi = fir.FirmaAdi;
entity.Firmalar.Add(FrAdd);
entity.SaveChanges();

İşte bu kadar basit. Tablomuzu türetiyoruz verimizi eşitliyoruz hangi tablomuza kayıt atacağımızı belirledikten sonra Entity SaveChanges diyerek kayıt işlemimizi tamamlıyoruz. Unutmamamız gereken nokta her işlemden sonra Entity.SaveChanges(); mutlak suretle yazmamaız aksi takdirde yapılan işlem gerçekleşmeyecek.

Peki update kodumuz nasıl olacak.

Firmalar FirmaDetay = (from a in entity.Firmalar where a.FirmaID == id select a).FirstOrDefault();
FirmaDetay.FirmaAdi = fir.FirmaAdi;
entity.SaveChanges();

Bu işlemimiz de bu kadar. İlk yapılan update yapılacak verimizi select yapmak istediğimiz alandaki değişiklikleri eşitledikten sonra Entity.SaveChanges(); diyerek yapılan işlemi DB ye Execute etmek.

Kısaca silme kodumuz ise aynı şekilde select işlemi yapıldıktan sonra,

var FirmaDetay= (from a in entity.Firmalar where a.FirmaID== id select a).FirstOrDefault();
entity.Firmalar.Remove(FirmaDetay);
entity.SaveChanges();


Bu işlemimiz de son bulduğuna göre artık yazımızı sonlandırmanın zamanı geldi select işlemi hem Update hemde Delete kod bloglarında olduğu için yeniden yazma gereği duymadım. O kısımdan bakabilirsiniz.

Tekrar görüşmek üzere,

Osman KURT
Yazılım Uzmanı

Yorumlar (2) -

  • Serdar

    18.12.2015 05:00:08 | Yanıtla

    Merhaba,

    update kodlarını kendi yapıma göre değiştiriyorum ancak aldığım hatalar şöyle ;

    Güncelle Butonum ;
    <input type="submit" class="btn btn-primary" name="Duzenle" value="Güncelle" />

    Update için yaptım ActionResult;
    (Test için EgitimID'si 41 olan satırın "Adi" sütununu Test0001 olarak değiştirmek istedim.)

    [HttpPost]
    public ActionResult Duzenle()
            {
                tbl_Egitimler egitimdetay = (from a in DB.tbl_Egitimler  where a.EgitimID == 41 select a).FirstOrDefault();
                egitimdetay.Adi = "Test0001";
                DB.SaveChanges();
                return view();
            }

    Güncelle butonuna tıkladığımda URL şöyle kalıyor ;
    http://localhost:55360/admin/EgitimDuzenle/Duzenle

    Ekrana Gelen Hata ;
    The parameters dictionary contains a null entry for parameter 'Egitim' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Duzenle(System.Web.HttpPostedFileBase, System.Web.Mvc.FormCollection, Int32)' in 'FerdaSaracogluMVC.Areas.admin.Controllers.EgitimDuzenleController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.
    Parametre adı: parameters

    • osman kurt

      18.12.2015 17:36:18 | Yanıtla

      Select yaptığında öyle bir kaydın geldiğinden emin misin? Böyle bir kayıt bulamadım diyor.

Loading