Bu yazımda Dapper ORM'de bulunan ExecuterReader metodunun kullanımını örneklerle anlatacağım.
Normalde SqlCommand sınıfının bir metodu olarak da bilinen ExecuterReader, sorgumuzda liste olarak verilerin dönmesini sağlar. Genellikle Select sorgularının sonuçlarını döndürmede kullanılır. SqlDataReader tipinde sonuç döndürülür ve bu nesne üzerinde işlemler yapılır. Kaynak için tıklayınız.
Dapper ORM'de ise IDbConnection için extension metot olduğu için bir connection oluşturduktan sonra bu metodu çağırabiliriz. ExecuterReader metodunda kullanılan parametreler aşağıdaki gibidir.
Adı | Tanım |
sql | Sql sorgumuzu yazacağımız alan |
param | Eğer sql sorgumuz parametre içerdiği durumlarda kullanılır.(varsayılan= null) |
transaction | Transaction varsa kullanılır.(varsayılan= null) |
commandTimeout | Command timeout'unu burada tanımlarız.(varsayılan= null) |
commandType | Sql sorgu türümüzü tanımlarız.Eğer Stored Procedure kullanacaksak bu parametreyi ekleriz.(varsayılan= null) |
Bu metodun kullanımını örneklerle anlatalım. Northwind veri tabanı kullanılmıştır.
Metodumuzda Products tablosundaki bütün kayıtları getiren SQL sorgusu yazdık. Sorgu sonucunda IDataReader tipinde bir reader nesnesi oluşturduk. Sonrasında DataTable nesnesi (table) oluşturarak, reader nesnemizi Load metodunu kullanarak tablo oluşturduk.
Ayrıca ExecuterReader metodundan stored procedure çağırmak için de kullanabiliriz. Aşağıdaki metodumuzda ilk parametre olarak stored procedurenin ismini ve alacağı parametreyi veriyoruz. Diğer parametremizde ise sp'nin alacağı parametreyi veriyoruz.
Bu senaryomuzda CategoryId'ye göre Product listemizi alacağız. GetAllProductsByCategoryId ise stored procedure ismidir.
Dapper ExecuterReader Metodu için kütüphanenin tutorial sitesinden yararlandım. İncelemek için tıklayabilirsiniz.
Yorumlar
Yorum Gönder