Merhabalar ,

Entity Framework kullanarak database uygulaması geliştirirken herhangi bir tablo üzerinde Crud(Create-Update-Delete) işlemleri yaparken ilk olarak hangi tablo üzerinde işlem yapılacağının bilinmesi gerekir. Daha sonra Update ve Delete işlemlerinde silinecek veya düzenlenecek olan kaydı bulup hangi tabloda ise gerekli işlemleri yapmamız gerekir.Geniş çaplı bir projeniz olduğunu düşünün ve tüm bu işlemleri her bir tablo işlemi için yaptığınızı düşünün. Tüm bu işlemleri tablo ayırt etmeden tek bir class içerisinde yaptığımızda kazanılacak zaman ve hız ciddi anlamda önem kazanmaktadır. Hoş genelde bu tarz klasik ve kolay olan işlemleri genelde junior developper lar yapar ama olsun :)

Şimdi tablo farketmeksizin CRUD işlemlerini nasıl yapacağımızı görelim. 
  • İlk olarak tabi ki Entity Database Model'imizi oluşturmamız gerekmektedir.
  • Daha sonrasında kodlarını hazır olarak vereceğim class'ın kullanılacağı projenin içerisine Entity Framework 5.0.0.0 versiyonunu kurmamız gerekmektedir. Bunun için yapmamız gereken ise ilk olarak resimdeki yerden Package Manager Console'u açmamız gerekir.


  • Daha sonra açılan pencerede : install-package entityframework -version 5.0.0.0 yazıp, entity framework paketinin hangi projeye yukleneceği secildikten sonra Enter'a basıp yüklemeyi tamamlayabiliriz.


  • Entity Framework kurulumlarını yaptıktan sonra bir Class oluşturup aşağıdakı kodları kullanabiliriz.

       public string Add(System.Data.Entity.DbContext dbContext,object Entity)
       {
           try
           {

               dbContext.Entry(Entity).State = System.Data.EntityState.Added;
               dbContext.SaveChanges();
               return "Başarılı";
           }
           catch
           {
               return "Hatalı";
           }
       }

       public string Edit(System.Data.Entity.DbContext dbContext, object Entity)
       {
           try
           {
               dbContext.Entry(Entity).State = System.Data.EntityState.Modified;
               dbContext.SaveChanges();
               return "Başarılı";
           }
           catch
           {
               return "Hatalı";

           }
       }

       public string Delete(System.Data.Entity.DbContext dbContext, object Entity)
       {
           try
           {
               dbContext.Entry(Entity).State = System.Data.EntityState.Deleted;
               dbContext.SaveChanges();
               return "Başarılı";
           }
           catch
           {
               return "Hatalı";
           }
       }

  • Son olarak da aşağıda bu methodları nasıl kullanacağımızın kodları mevcuttur.
               var service = new Service.BaseCrudService();
               var kategori = new Data.Category
                {
                    CategoryID = 11,
                    CategoryName = "deneme1",
                    Description = "acıklama1",
                    Picture = null
                };
                service.Add(new Data.NorthwindEntities(), kategori);


Yapacağımız işlemlerin hepsi bu kadar. Böylelikle CRUD işlemlerini tek bir Class içerisinde sadece bir kez yazmış olduk ve daha güzel olan tüm tablo ve tüm modeller için geçerli oldu.

Şuan Dynamic Lambda Expression üzerinde çalışıyorum.Her türlü search işlemlerini kabul eden ve gene model ve tablo bağımsız çalışan bir Class yazmayı hedefliyorum.Bitti anda hemen sizlerle paylaşacağım.

Görüşmek üzere.

Koray Düzgün.