Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Doğuhan Aydeniz
Doğuhan Aydeniz
http://www.doguhanaydeniz.com
İletişme geçmek için tıklayın.
6 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: ado.net c# ado.net store procedure delete function entity framework insert function sp entity store procedure stored procedure functions storeprocedure mapping update function using storeprocedure with entity Kodlama Doğuhan Aydeniz
 
YAZI HAKKINDA
Türü : Serbest Köşe (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : Kodlama
Yayınlanma Tarihi : 19.1.2010
Okunma Sayısı : 34386
Yorum Sayısı : 1     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 29.3.2024
Turhal Temizer
Mac OS/X Removing CUDA 29.3.2024
Burak Selim Şenyurt
Kurumsal Yazılımcının Oyun Geliştirme ile İmtihanı 29.3.2024
Burak Selim Şenyurt
Matematik ve Oyun Programlama - Missile Command - Final 29.3.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
Entity Framework ile Stored Procedure Kullanımı
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon

Merhaba bu yazımda, Entity Framework üzerinden Store Procedure nasıl kullanılır onu işleyeceğiz.

İki türlü kullanım şekli mevcuttur:

1-) Bir Entity nesnesinizin Create, Delete yada Update olayına ilgili Store Procedure'u tanımlayarak.
2-) Modelinize yüklediğiniz bir Store Procedure'ü istediğiniz her an kullanabilmeniz için Function Imports klasörüne tanımlayarak.

Şimdi gelelim bu 2 kullanım şeklini uygulayarak yapacağımız basit bir senaryo oluşturmaya.

Category adlı bir tablo barındıran bir Database'imiz olsun bizde bu tabloya yeni kayıt ekleme işlemi yapılırken Store Procedure aracılığı ile yapılmasını sağlayalım.

Önce Database'de Category tablomuzu aşağıdaki gibi oluşturalım.



Tablomuzu oluşturduktan sonra sıra geldi bu tabloya yeni kayıt ekleme yapacak olan Store Procedure'ümüzü hazırlamaya. Ben Store Procedure'ün ismini sp_add_category olarak verdim.

 

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON

go

CREATE PROCEDURE [dbo].[sp_add_category]

(

@Slug nvarchar(250),

@Name nvarchar(250),

@Active bit,

@ImageUrl nvarchar(100),

@ParentCatId int

)

AS
BEGIN

SET NOCOUNT ON;
insert into Category (Slug, Name, Active, ImageUrl, ParentCatId)
values

(@Slug, @Name, @Active, @ImageUrl, @ParentCatId)

END



Database tarafındaki işlemlerimizi tamamladıktan sonra artık Visual Studio ortamımıza geri dönme vakti. Projenize daha önceden bir Entity Data Model eklediğinizi varsayıyorum.
O halde Database'den Entity Data Modelimize yeni eklediğimiz Category tablosu ve Store Procedure'ü ekleyelim.

Model Browser'ınızın içinde sağ tıklayın ve Update Model From Database seçeneğini seçerek devam edelim. Bu adımda Add sekmesinde yer alan Tables ve Store Procedures yazılarının yanındaki kutuları işaretleyelim. Malum database'de henüz DataModel'de yer almayan bir tablo ve bir store procedure'müz var. Evet karşımıza şöyle bir ekran gelecektir.  



 

İlgili kutuları işaretledikten sonra Finish butonuna basalım. Pencere kapandıktan sonra sağ taraftaki Model Browser'ımızın son hali aşağıdaki gibi değişecektir.



Entity Model'imize öğelerimizi başarıyla ekledikten sonra asıl yapmak istediğimiz konuyu hatırlayalım neydi bu;
Category tablosuna yeni kayıt ekleneceği zaman Entity Model'imizden SQL'e bir sorgu cümlesi değil de bir Store Procedure aracılığı ile yeni kayıt eklenmesini sağlamak.

Yazının başında da bahsettiğim gibi bunu 2 şekilde yapabiliyoruz.

1. Entity nesnesinizin Create, Delete yada Update olayına ilgili Store Procedure'u tanımlamak

Category Entity'mize ilgili store procedure'ü insert function olarak tanımlama işlemini yapmak için .

Category Entity nesnemize sağ tıklayın, çıkan pencereden Stored Procedure Mapping seçeneğini tıklayın.

Bu menüyü tıkladıktan sonra ekranın altında Mapping Details paneli açılacaktır. Bu panelin sol tarafında alt alta iki sekme bulunmakta biz alttakini yani "Map Entity to Functions"  seçeneğini seçeceğiz.

Map Entity to Functions seçeneğini seçtikten sonra aşağıdaki gibi 3 tane fonksiyon tipini göreceksiniz. (Insert, Update, Delete) Bunlara istediğimiz Store Procedure'lerimizi bağlayabiliyoruz.

Bizim ki Insert Function, aşağıdaki animasyonlu resimde de adımları göreceğiniz gibi dropdown'a tıkladığımız zaman DB'den Entity Model'e yüklediğimiz 'sp_add_category' adlı store procedure listelenmektedir. Biz bunu seçiyoruz ve seçtikten sonra, önce Ctrl + S yapıp Modelimizi güncelleyelim daha sonra da projemizi build edelim.

Bu sayede artık Entity Modeliniz üzerinden her zaman yaptığınız gibi bir kayıt ekleme işlemini SQL sorgusu ile değil bir Store Procedure aracılığı ile gerçekleştirecektir.

 

ÖNEMLİ : Dikkat edilmesi gereken bir husus var Store Procedure'ünüzde aldığınız parametrelerin adları tablodaki alan adları ile yani entity nesnenizdeki property'lerin adları ile uyuşmaz ise yukarıdaki resimde 3.ncü adıma geldiğinizde Property alanından paremetrenin entity nesnenizdeki hangi property ile eşleşeceğini bildirmeniz gereklidir.


2. Modelinize yüklediğiniz bir Store Procedure'ü istediğiniz her an kullanabilmeniz için Function Imports klasörüne tanımlamak

Bu işlemi yapmak için Database'den güncellediğiniz Entity Modelinizin sağ tarafında yer alan Model Browser'ın altında yer alan EntityContainer sekmesininde altında bulunan Function Imports klasörüne sağ tıklayıp Add Function Import seçeneğini tıklamanız gereklidir. (EntityModel > Model Browser > EntityContainer > FunctionImports)

Daha sonra çıkan pencerede de sizden hangi store procedure'ü ekleyeceğinizi ve buna C# bazında kullanacağınız bir fonksiyon ismi vermenizi isteyecektir. Aşağıdaki resimlerde ilgili adımlar gösterilmiştir ve C# tarafında nasıl kullanacağımızı gösteren örnek bir kod parçacığı bulunmaktadır.








Üstteki kod parçacığı örneğinde gördüğümüz gibi Entity modelimizden aldığımız instance ile fonksiyonumuza direk erişim sağlayabiliyor ve kullanabiliyoruz.

Bir başka paylaşımımda görüşmek üzere arkadaşlar, umarım yararlı olmuştur.
Makale:
Entity Framework ile Stored Procedure Kullanımı Kodlama Doğuhan Aydeniz
  • Yazılan Yorumlar
  • Yorum Yaz
KAS
20
2016
Makale resimlerle anlatılmış ama resimleri göremiyoruz.
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor