Entity Framework POCO Nesneleri İle Stored Procedure Kullanımı

POCO(Plain Old CLR Objects) Nedir? yazısında POCO hakkında kısa bir giriş yapmıştık, şimdi biraz daha ileleyeceğiz ve POCO’da Stored Procedure kullanımını ele alacağız.

Oluşturduğumuz Context’imizde Stored Procedure eklemek için öncelikle Modelimize sağ tıklayıp Update From Database diyoruz ve Stored Procedure sekmesinden istediğimiz sp’yi seçiyoruz. Model Browser’ı açtığımızda AdventureWorksModel.Store’un altında Stored Procedure klasörünün altında ilgili sp’nin geldiğini görürüz. Ama işimiz burada bitmiyor, sp’mizi seçip sağ tıklıyoruz ve Add Import Function diyoruz. Burada çıkan ekranda sp’mizin dönüş tipini seçiyoruz. Ben tüm kategorileri getiren bir sp yazdım ve bu nedenle dönüş tipini belirtmek için Entities seçeneğini seçip ProductCategory sınıfını seçiyoruz. Artık sp’miz Context’imize dahil edildi. EF’nin oluşturduğu nesneleri kullanıyor olsaydık Context nesnemiz üzerinden sp’mize ulaşabilirdik ancak POCO nesnelerini kullandığımız için sp’mizi çalıştıracak olan metodu Context sınıfımızda yazmamız gerekiyor.

public ObjectResult<ProductCategory> GetProductCategories()

{

return base.ExecuteFunction<ProductCategory>(“GetProductCategories”);

}

Daha sonra Crud işlemlerini yazdığımız sınıfta aşağıdaki kodu yazarak yukarıdaki metodu çağırıyoruz. Aslında burada tekrar diğer sınıfta yeni bir metot yazmamıza gerek yok, Context nesnemiz üzerinden de metoda ulaşabiliriz; ancak kod bütünlüğü olması açısından böyle bir yöntem izlemek daha iyi olur.

public List<ProductCategory> GetProductCategories()

{

List<ProductCategory> list = null;

using (AdventureWorksContext ctx = new AdventureWorksContext())

{

list = ctx.GetProductCategories().ToList();

}

return list;

}

Kaynaklar
http://thedatafarm.com

Reklamlar

2 thoughts on “Entity Framework POCO Nesneleri İle Stored Procedure Kullanımı

    1. Java bilmiyorum o yüzden yanlış yorum yapmak istemem ama Entity Framework’ün POCO nesnelerine desteğini araştırırken karşıma çıkmıştı. Kısaca POJO’nun .Net’çesi diyelim 🙂

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s