ADO.NET Entity Framework’e Giriş

Administrator tarafından yayınlanmıştır 27. February 2010 07:13

Herkese   merhaba arkadaşlar bu makalemde ADO.NET Entity Framework konusu üzerinde duracağım.Aslında ADO.NET Entity Framework'e başlamadan önce sayın  hocam Öğretim Görevlisi Özgür Çiftçi’ye beni bu konuyla ilgilenmem için yaptığı katkı ve yardımlarından dolayı teşekkürü bir borç bilirim.Son zamanlarda adını sıkça duymaya başladığımız gelecekte veritabanı  ve kod geliştirme ortamları arasında  bir köprü görevi görmeye aday olan ADO.NET Entity Framework konusuna  değineceğiz.Bu konu programlamaya yeni başlayan ve veritabanı yönetim sistemlerinden birini kullanmamış olan arkadaşlar için anlamsız gelebilir.Fakat elimden geldiğince en basite indirgeyerek anlatmaya çalışacağım. ADO.NET Entity Framework  teknolojisinin temeli aslında ORM’ye dayanır.ORM’den sonra  Hibernate and NHibernate gibi teknolojiler ile gelişen bir teknolojinin Microsoft  tarafından geliştirilmiş ve iyileştirilmişversiyonudur.ADO.NET Entity Framework’un en önemli özelliği kabaca veritabanımızda bulunan tabloları birer nesne gibi kullanmak.Yani şöyle veritabanımızda bulunan bir tablonun bir yansıması veya tümüyle fotokopisi çekilmiş şekilde kod geliştirme platformunda kullanılmasıdır.Bu yansima yapılar XML dosyalarında saklanır. Bunu yaparken arka planda XML kullanılıyor.Bu noktada XML ADO.NET Entity Framework için çok önemli bir yere sahip. ADO.NETEntity Framework ilk olarak Visual Studio 2008 Service Pack 1 ile 11 Ağustos 2008 tarihinde ortaya çıktı.ADO.NET Framework’ü Visual Studio 2008 Service Pack 1 ‘iyükleyerek kullanabilirsiniz. ADO.NET Entity Framework’ü projenize eklediğinizde size ‘.emdx’  uzantılı XML’den oluşan biryapı karşınıza gelir.Şimdi aşağıdaki şekle bakarak ADO.NET Entity Framework’ ü yorumlamaya çalışalım.

 

 

Bu şekile dikkat edersek ADO.NET Entity Framework ile veritabanı bağlantılarını ve veritabanına dair birçok işlemi Entity SQL ,Linq to SQL veya ObjectQuery  üçlüsünden  biriyle veya mixed bir moda projelerimizde kullanabiliriz.Yalnız dikkat ederseniz ObjectQuery ile bir işlem yaptığınızda Entity SQL temeline dönüştürülüp bir sonraki katmana iletiliyor.Daha sonra Entity Framework katmanına geliyoruz.Burası en önemli kısımlardan biri aslında burada CSDL,MSL,SSDL yapıları mevcuttur.Bu yapılara sırayla değinelim;

SSDL :Kaynak olarak kullanacağımız fiziksel veritabanı tablolarımızın metadata bilgilerine sahip olan kısımdır.Bir bakıma burası kaynağımızdır.Veritabanı tablolara ait bilgilerimiz buradadır.

 

<Schema Namespace="Okul_DatabaseModel.Store" Alias="Self" Provider="System.Data.SqlClient" ProviderManifestToken="2005" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2006/04/edm/ssdl">

<EntitySet Name="sysdiagrams" EntityType="Okul_DatabaseModel.Store.sysdiagrams" store:Type="Tables" Schema="dbo" />

          <EntitySetName="tbl_Akademik" EntityType="Okul_DatabaseModel.Store.tbl_Akademik" store:Type="Tables" Schema="dbo" />

          <EntitySetName="tbl_AkademikYerlesim" EntityType="Okul_DatabaseModel.Store.tbl_AkademikYerlesim" store:Type="Tables" Schema="dbo" />

          <EntitySetName="tbl_DersDiller" EntityType="Okul_DatabaseModel.Store.tbl_DersDiller" store:Type="Tables" Schema="dbo" />

          <EntitySetName="tbl_Dersler" EntityType="Okul_DatabaseModel.Store.tbl_Dersler" store:Type="Tables" Schema="dbo" />

          <EntitySetName="tbl_Doktara" EntityType="Okul_DatabaseModel.Store.tbl_Doktara" store:Type="Tables" Schema="dbo" />

          <EntitySetName="tbl_Gorev" EntityType="Okul_DatabaseModel.Store.tbl_Gorev" store:Type="Tables" Schema="dbo" />

          <EntitySet Name="tbl_Personel" EntityType="Okul_DatabaseModel.Store.tbl_Personel" store:Type="Tables" Schema="dbo" />

 

Bu örnekte gözüken kısım kendi projelerimden alınmış olan SSDL yapısına XML kodlarından bir örnektir.Burada dikkatinizi EntityType’a yöneltiniz, "Okul_DatabaseModel.Store.tbl_Akademikbu cümle önemli dikkat ederseniz Store olduğu belirtiliyor.  store:Type ise bunun bir veritabanı tablosu olduğunu açıklıyor bizlere.Şimdi ikinci kısımda anlatacağım CSDL yapısında bundan farklı cümleler ve yapılar ile karşılacağız.

CSDL:Bu kısım ise uygulamalarımızda kullanacağımız tabloların XML şeklinde kod geliştirme platformunda direktolarak kullanacağımız yapıların oluşturulduğu yerdir.Yani kısacası tabloların yansımaları buradadır.

<Schema Namespace="Okul_DatabaseModel" Alias="Self" xmlns="http://schemas.microsoft.com/ado/2006/04/edm">

        <EntityContainerName="Batu_Okul_DatabaseEntities">

          <EntitySetName="sysdiagrams" EntityType="Okul_DatabaseModel.sysdiagrams" />

          <EntitySetName="tbl_Akademik" EntityType="Okul_DatabaseModel.tbl_Akademik" />

          <EntitySetName="tbl_AkademikYerlesim" EntityType="Okul_DatabaseModel.tbl_AkademikYerlesim" />

          <EntitySetName="tbl_DersDiller" EntityType="Okul_DatabaseModel.tbl_DersDiller" />

          <EntitySetName="tbl_Dersler" EntityType="Okul_DatabaseModel.tbl_Dersler" />

          <EntitySetName="tbl_Doktara" EntityType="Okul_DatabaseModel.tbl_Doktara" />

          <EntitySetName="tbl_Gorev" EntityType="Okul_DatabaseModel.tbl_Gorev" />

          <EntitySet Name="tbl_Personel" EntityType="Okul_DatabaseModel.tbl_Personel" />

Şimdi bu bölümde SSDL ve CSDL yapısındaki farklılıkları ince noktalara değinelim.Şu kod parçacıklarına dikkatinizi çekeceğim;

"Okul_DatabaseModel"buradaki Namespace fark etmişsinizdir ki SSDL’in NameSpace cümleciğinden farklıdır.SSDL Namespace cümlesi "Okul_DatabaseModel.Store" şeklindedir. CSDL yapısında  .Store  yoktur.Buda bunun ilgili tablonun bir yansıması olduğu anlamına gelir.

Bir diğer farka değinelim.CSDL yapısındaki şu XML cümlesine dikkatinizi veriniz.

 

<EntitySetName="sysdiagrams"EntityType="Okul_DatabaseModel.sysdiagrams" />

 

Şimdide SSDLyapısında şu cümleyle kıyaslama yapalım.

 

<EntitySet Name="tbl_Akademik"

EntityType="Okul_DatabaseModel.Store.tbl_Akademik"

store:Type="Tables" Schema="dbo" />

 

SSDL yapısındaki XML kod parçasına bakınca Schema’nın dbo yani veritabanı kaynaklı olduğunu belirtiyor.Ayrıca Type Tables şeklinde yansının veritabanı tablosu olduğunu belirtiyor.Name ise tbl_Akademik hangi tablonun kaynak olacağını belirtiyor.

 

Şimdi CSDL yapısındaki XML kod parçasına bakalım.

Burada SSDL yapısından farklara değinelim şimdide Name dikkat ederseniz sysdiagrams yazıyor buda veritabanından bir yansı olduğunu belirtiyor.EntityType’a dikkat ederseniz "Okul_DatabaseModel.sysdiagrams" yazıyor buda kaynağın sysdiagrams olduğunu belirtiyor.SSDL yapısında ise bu alan "Okul_DatabaseModel.Store.tbl_Akademik" şeklinde veritabanı kaynaklı olduğunu belirtiyor.Evet arkadaşlar ADO.NET Entity Framework’e bir giriş yapıp arkaplanda neler gerçekleşiyor ona değindik umarım zevk alarak okuyacağınız bir makale olmuştur.

 

Bir sonraki makalemde görüşmek üzere…
 
(Yazılanmakaleler tarafımdan hazırlanmıştır.Eğer kullanılması takdirinde lütfen atıftabulunmayı etik açısından unutmayınız.) 
 
Batuhan Düzgün Sakarya Üniversitesi Bilgisayar Mühendisliği 

Currently rated 3.0 by 2 people

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:

Ado.Net Entity Framework

Comments

Add comment


(Will show your Gravatar icon)  

  Country flag

biuquote
  • Comment
  • Preview
Loading





Bu site BlogEngine.NET 1.4.5.0 ile oluşturulmuştur. Türkçe çevirisi BlogEngine TR ekibi tarafından yapılmıştır.

Batuhan Düzgün

Sakarya Üniversitesi 

Bilgisayar Mühendisi

Endüstri Mühendisi

Yeditepe Üniversitesi

Bilgisayar Mühendisliği Yüksek Lisans 

 sahibinden.com

   Kıdemli Uzman Yazılım Mühendisi  

E-Mail 

   batuhan.duzgun@sahibinden.com

   batuhan.duzgun@windowslive.com

  github.com/batux

 

Sayfalar

Calendar

<<  July 2018  >>
MoTuWeThFrSaSu
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

Yazıları geniş takvimde göster