Entity Framework Merhaba Dünya
Orm Makalesinden sonra ufak bir örnek uygulama ile Entity Framework’ün nasıl kullanıldığını birlikte göreceğiz.Böylece konuyu daha iyi pekiştirmiş olacağımıza inanıyorum. Bu kısma girmeden önce makinanızda Microsoft Sql Server kurulu olduğundan emin olmalısınız. Genelde Visual Studio ile birlikte kurulu olarak gelmektedir. Sql server için Sql Server Managemet Studio veya Sql Server Managemet Studio’unun Express sürümünü kurabilirsiniz. Ben bundan sonraki uygulamaları visual studio 2012 nin çıkmasıyla beraber bu versiyonu kullanarak anlatacağım. Visual Studio 2012’nin 90 günlük deneme sürümünü http://www.microsoft.com/visualstudio/tur/downloads linkinden indirebilirsiniz. Ben Ultimate sürümünü kullanıyor olacağım.
Öncelikle yeni bir proje oluşturuyor olacağız. Aşağıdaki resimde de gördüğünüz üzere bir DemoAppEF adında bir konsol projesi oluşturun. Framework olarak .Net Framework 4.5 kullanıyor olacağız.
Projeyi oluşturduktan sonra projeye iki tane sınıf eklemenizi istiyorum. Shift+Alt+C tuş kombinasyonunu kullanabilirsiniz. İlk sınıfın ismi Konu diğer sınıfın ismi ise Yorum olacak şekilde bu sınıflarıda oluşturun.
Daha sonra DemoAppEF projesine sağ tıklayın. Manage Nuget Packages’in üstüne gelin ve tıklayın. Resimde bu işlemi görebilirsiniz.
Karşımıza Nuget Packages ekranı gelecektir. Bu kısımda solda ki arama kısmına Entity yazın. Daha sonra arama sonuçları içersinde ki EntityFramework seçin ve install diyin. Böylece EF projemize eklenmiş olacaktır.
Yukarıda Konu ve Yorum adlı iki sınıfı oluşturmanız gerektiğini belirtmiştik. Şimdi Konu sınıfını açın ve aşağıdaki gibi kodlayın.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoAppEF { public class Konu { public int KonuId { get; set; } public string KonuBaslik { get; set; } public string KonuAciklama{ get; set; } public DateTime KonuTarih { get; set; } /* Navigasyon özellikleri için virtual anahtar kelimesi kullanılarak tembel yükleme (lazy loading) yapılır.*/ public virtual IList<Yorum> Yorumlar { get; set; } } } Şimdide Yorum sınıfının kodunu aşağıdaki biçimde değiştirin. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoAppEF { public class Yorum { public int YorumId { get; set; } public int KonuId { get; set; } public string YorumAciklama { get; set; } public DateTime YorumTarih { get; set; } public virtual Konu Konu { get; set; } } } |
Bu sınıflar POCO sınıflarıdır. Herhangi bir sınıf veya arayüzden türetme zorunluluğumuz yoktur. Veri modelimize uydukları müddetçe bu sınıfları kullanabiliriz.Fakat dikkat ettiğiniz üzere bu sınıfların veri tabanıyla bağlantısı yok. İşte bunu oluşturmak için EF içinde bulunan DBContext’i kullanıyor olacağız. Hatırlarsanız konunun başında Nuget ile EF sınıflarını projemize ekledik. Şimdi Forum isminde bir sınıf oluşturalım. Bunun için yine Shift+Alt+C kombinasyonunu kullanabiliriz. Oluşan sınıfı DBContext sınıfından türetin. Işlemi yaptıktan sonra kod tarafında DbContext tanınmayacaktır. Aşağıdaki şekilde DbContext üstüne gelin ve using tarafına gerekli kısmı ekleyin.
Daha sonra kodu şu şekilde düzenleyin. Bu işlemler sayesinde veritabanı tarafındaki eşleştirmeleride yapmış olacağız.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoAppEF { public class Forum:DbContext { public DbSet<Konu> Konular { get; set; } public DbSet<Yorum> Yorumlar { get; set; } } } |
Bu kodlamayla birlikte şuan sadece veritabanına bağlanmamız gerekmektedir.
Bunun için öncelikle View menüsünden Sql Server Object Explorer seçeneğini tıklayın. Böylece tanımlı olan sql serverinizin bilgisini almış olacaksınız.
Bu işlem tamamlandıktan sonra App.config dosyasına geçin ve aşağıdaki satırları dosyanıza ekleyin. kısmının üst tarafına bu eklemeyi yapabilirsiniz. Bağlantısını name kısmı context sınıfımızla aynı yapıyoruz. Böylece sistem otomatik olarak bağlantı bilgilerini algılamaktadır.
1 2 3 4 5 6 7 8 9 10 |
<connectionStrings> <add name= "Forum" connectionString= "Integrated Security=SSPI;Persist Security Info=False; Initial Catalog=DEMODB;Data Source=.SQL2008R2 " providerName= "System.Data.SqlClient" /> </connectionStrings> |
Bu ayarlamaları yaptıktan sonra uygulamayı çalıştırın. Aşağıdaki gibi bir ekranla karşılaşıyor olacaksınız.
Daha sonra Sql Server Object Explorer kısmında veri tabanları (databases) kısmını yenile (refresh) işlemini yaparsanız. Veri tabanınız dahil olmak üzere tablolarında oluşturulduğunu görürsünüz.
Basit anlamda Entity Framework’u nasıl kullanacağımızı gördük. Sorgulama işlemini de kendiniz yaparak ilerleyebilirsiniz. İleri ki konularda ileri seviye teknikleri görüyor olacağız.
Sürç-i lisan ettiysek affola
Kubilay