Entity Framework Nedir?

6 Nisan 2012
Posted by Çağatay Yıldız
8691 Views

Merhaba arkadaşlar bir süredir iş yoğunluğum nedeniyle bloğumu boşladım. Bu sıralar yaptığım bir e-ticaret sitesindeki uygulamaları elimden geldiğinde sizlerle paylaşacağım. Bu yazımızda Microsoft’un .Net Framework 3.5 ile gelen Entity Framework adlı teknolojisinden bahsedeceğiz. Bloğumuzda Entity Framework ile ilgili oldukça fazla yazı yayımlamayı düşünüyorum. İlk olarak projemizde Entity Framework bağlantısı nasıl gerçekleştiririz ve bunun sonucunda nasıl bir mimariyla karşılaşacağımızdan bahsedelim. Bir web projesi ve Class Library açtığınızı farzederek işleme başlayalım. Burada Class Library kullanmamızın nedeni projemizin çok katmanlı bir yapıya sahip olması ve veritabanından gelen tabloları ve burada yapacağımız işlemleri burada saklamak  Library üzerinde oluşturduğumuz Model isimli klasöre sağ tıklayıp Add New Item bölümünü tıkladıktan sonra karşımıza gelen ekrandan data sekmesini tıklıyoruz.

Karşımıza gelen pencerede bir çok veritabanına bağlantı ve xml gibi data yapıları bulunmaktadır. Pencereden en üstte bulunan ADO.NET Entity Data Model’i seçip Add butonuna tıklıyoruz.

Karşımıza 2 farklı seçenek çıkmaktadır. Birincisi seçenek yani Generate from database daha önce mevcut olan veritabanına bağlanmamızı sağlar. Diğer seçenek ise boş bir model designer ekrana getirecektir. Biz ilk seçeneği tıklayıp mevcut veritabanımıza bağlanacağız. Next butonunu tıklayarak ilerliyoruz.

Karşımıza Entity Data Model Wizard ekranı gelecektir. Bu ekran bizim sql bağlantımızı sağlayacağımız ve veritabanımızı seçeceğimiz ekran. İlk kez mevcut veritabanı bağlantımızı yapacağımız için sağ üstte bulunan New Connection bağlantısını tıklıyoruz.

Karşımıza gelen pencereden bağlantımızı yapılandıracağız. Bağlantı için MSSQL2008 den Northwind veritabanımızı seçeceğiz. Eğer farklı bir veritabanı kullanmak istiyorsak(MySql, Oracle vb.) Change butonunu tıklayıp veritabanımızı seçiyoruz. Servera bağlanmak için Windows Authentication ve Use Sql Server Authencitaion seçenekleri bulunmakta. Sql bağlantımızı nasıl seçtiysek ona uygun olan seçeneği tıklıyoruz ve yukarıda bulunan Server Name isimli bölümden server ismimizi seçiyoruz.

Database olarak Nothwind isimli veritabanımızı seçtik. Eğer dışarıdan bir database yüklemek istersen Attach a database file seçeneğini tıklayarak yükleyebiliriz. Test Connection seçeneğini tıklayarak Bağlantınızı Test edebilirsiniz. Ayrıca Advanced butonunu tklayarak bağlantımızda özel ayarları yapılandırabiliriz. Web config e eklencek olan satırdaki satırdaki propertie leri ayrı ayrı yapılandırabilirz(Integrated securityi Conenct Timeout vb. gibi)

OK butonuna tıklayıp devam diyoruz.

Connection String satırımız ekrana gelmiş bulunmakta. Save entitiy connection settings in App.Config as  default olarak seçili gelmektedir. Bu şekilde connection string satırımız otomatik olarak bağlantımıza eklenecektir ve bu satırı projede kullanmak istediğimiz yerlere taşıyacağız. Next butonuna tıklayarak devam ediyoruz

Tablo, view ve procedure lar ekranımıza gelmiş bulunmakta. Kendi isteğimize göre tablo, view ve procedure lardan istediğimizi seçiyoruz. Dilersek veritabanımızdaki tablolardan bazılarını seçmeme imkanına da sahibiz. Örneğin büyük bir e-ticaret veritabanı database imizi daha önce yarattık. Bir sonraki projemizde bu database imizi kullanacağız fakat bazı tablolar bizim işimize yaramayabilir. bunun için tables seçeneğinin yanını tıklayıp dilediğimiz tablolarımızı seçebiliriz. Finish butonunu tıklayıp yapılandırmamızı tamamlıyoruz.

Finish i tıkladıktan sonra projemizdeki Referans bölümümüze Entitiy ile ilgili bölümler ekledi. Karşımıza tablolarımız gelmiş bulunmaktadır. Dikkat edersek her tablonun altında satılar birer propertie olarak geldi. Yani aslında her tablomuz bizim bir class a dönüştü ve daha önce veritabanımızda yaptığımız işlemler(Primary key vb.) bu classlara(tablolara) entegre oldu. Örneğin Products tablomuzun ProductName satırı Product class ınını ProductName isimli propertie si oldu. Bütün tablolarımızı projemize ayrı ayrı ve bağlantılı birer class şeklinde ekledik.

Bu class mimari bize projemizde bir çok esneklik kazandıracak. Herhangi bir class ın propertie sini nasıl kullanıyorsak Entity Framework ile yaptığımız bağlantıda ekranımıza gelen classlarımızdaki bütün özellikleri kullanıyor olacağız.

Bu makalemizde bağlantı yapılandırmamızı yaptık. Diğer makalelerimizde bu classların nasıl kullanılacağı, select,insert,update,delete gibi basit işlemleri yapacağız ve böylelikle bu esnekliğin faydalarını göreceğiz.

Şimdilik bu kadar diğer makalemizde görüşmek üzere.