Entitiy Framework İnsert İşlemi

18 Nisan 2012
Posted by Çağatay Yıldız
2206 Views

Merhaba arkadaşlar bu makalemizde Entity Framework ile insert işlemini gerçekleştireceğiz. Veritabanı olarak Northwind veritabanını kullanacağız. Daha önceki makalemizde Entity Framework bağlantımızı nasıl gerçekleştirdiğimizi ve tabloların bir sınıf mimarisi şeklinde geldiğinden bahsetmiştik(http://cagatayyildiz.com/entity-framework-nedir/). Bu işlem sırasında da çok katmanlı mimari kullanacağız. Data modelimizi Library e entegre edip web projemize referans göstereceğiz. Dilerseniz bağlantıyı direk web projeniz üzerinde de kurabilirsiniz.   Öncelikle CategoriesService isimli bir class oluşturuyoruz.

Entitiy Framework Insert İşlemi

Daha sonra oluşturduğumuz class ı public yapıp bağlantımızı ve insert işlemiyle ilgili kodlarımızı yazıyoruz. Public yapmamızın nedeni class ımıza web tarafından ulaşmamız.


public class CategoriesService
 {
 public void KategoriEkle(Categories cat)
 {
 NORTHWINDEntities db = new NORTHWINDEntities();
 db.AddToCategories(cat);
 db.SaveChanges();
 }
 }

Öncelikle Entities bağlantısını oluşturup veritabanımıza bağlandık ve daha sonra KategoriEkle isimli metodumuz çağrıldığında dışardan categories nesnesi istedik. ve daha sonra SaveChanges metodu ile kaydımızı yaptık. Sıra geldi yazdığımız bu metodu kullanmaya. Web tarafında bir sayfa oluşturup içerisine textbox ve button koyuyoruz. Butona tıkladığımızda library den metodumuzu çağırıp içerisine webde oluşturduğumuz categories nesnesini yollayacağız. Öncelikle Library web projemize referans ediyoruz.

Web projemizi sağ tıklayıp AddReferance seçeneğini tıklıyoruz ve karşımıza aşağıda bulunan bir ekran geliyor. Buradan hem Entitiy hem de oluşturduğumuz Library i referans göstereceğiz. Bu şekilde projemiz çok katmanlı bir hal alacak.

Entitiy Referans

Daha sonra Entity i referans etmek için tekrar Add Reference tıklayıp Recent sekmesinden System.Data.Entity i seçip Ok diyoruz.

Daha sonra webde oluşturduğumuz 2 adet text box ve buton ile kategori ekleme işlemini basitçe gerçekleştiriyoruz. Dikkat edilmesi gereken nokta kategorinin bir class olarak anık oluşturulması(instance almak) ve daha sonra o tablonun satırlarının o sınıfın özellikleri gibi gözükmesidir ve text değerlerimizi o properties lere yani özelliklere atıyoruz.ve oluşan kategoriyi metoda yolluyoruz.

protected void BtnKaydet_Click(object sender, EventArgs e)
 {
 CategoriesService cs = new CategoriesService();
 Categories cat = new Categories();
 cat.CategoryName = TxtKategoriAdi.Text;
 cat.Description = TxtKategoriAciklama.Text;
 cs.KategoriEkle(cat);
 }

Bu şekilde rahatça kategori ekleme işlemi gerçekleştirdik. Dikkat etmemiz gerek bir diğer nokta ise Kullandığımız web formda referans ettiğimiz library i kullanmak için code behind kısmına eklemek.

Using Kutuphanemizinismi

Bu şekilde işlemimizi tamamladık. Çok katmanlı mimari ile çok basit bir insert işlemi gerçekleştirmik olduk. Bir sonraki yazıda görüşmek üzere.

  • merve

    Yazdığımız fonksiyonlarda her seferinde yeni bir entity oluşturarak connection açıyoruz.Bu şekilde yapmanın daha iyi olduğunu söylüyolar. Global olarak sadece bir kere entity oluşturup sonra bütün işlemlerimizi onun üzerinden yapsak daha mantıklı değil mi? diğer şekilde her seferinde database e bağlanılıyor veri cokluğunda bu sorun olmaz mı ? Şimdiden cevabınız için teşekkürler.

  • Çağatay Yıldız

    Sadece bir kere entitiy oluşturmak bağlantımızın hep açık kalmasına sebep olur bu da pek tercih edilen bir yöntem değildir o yüzden işlem bazlı bağlantı açıp kapamak tercih edilir. onun yerine eğer birden fazla tablonun farklı satırlarına insert yapmıyorsanız repository pattern yapısını kullanabilirsiniz bu patternele ilgili yazıyı bir kaç gün içinde paylaşacağım

  • Ahmet

    Hic bir baglanti ve SQL statement yazmadan database islemleri yaptik, cok guzel bir seymis, object oriented mimari olmasi gayet anlasilir yapiyor.