22 Kasım 2013 Cuma

Entity Framework 6 güncellemesi nasıl yapılır ?

Bildiğiniz üzere yeni özellikleri ve yeni yapısı ile EntityFramework 6 yayınlandı.

Diyelim ki EntityFramework'ün önceki versiyonlarından yeni versiyonuna geçiş yapmak istiyorsunuz.
Peki nasıl geçiş yapacaksınız ?
İşte bu sorunun cevabını aşağıda anlatmaya çalıştım :)


Başlamadan önce;
  • Bu güncellemeyi Visual Studio 2012 ve 2013 versiyonlarında c# programlama dili için yapacağız.
  • Projenizin yedeğini ise almayı lütfen unutmayın. ( Microsoft bu bazen süprizler yapabilir :)  )
yukarıdaki durumlar tamam ise devam edelim.

Başlıyoruz;

İlk olarak Entity Framework 6'yı kurmamız gerekiyor.

Bunu yapmanın iki yolu var bunlar;

1 -) Projenizin References (referansları) üzerinde sağ tıklayıp  Manage Nuget References 'a tıklayın. Açılan ekranda arama kutusuna "EntityFramework" yazdığınızda aşağıdaki gibi bir ekran ile karşılacaksınız, seçiminizi yapıp "Install"  butonuna bastığınızda kurulum ekranı çıkacak ve dosyaları internet den indirip sizden bir  "I Accept" (kabul ediyorum) onayı isteyecek. Sonrasında ise kurulumunuz tamamlanmış olacak.
Manage Nuget Packages


2 -) Paket yöneticisi konsolundan aşağıdaki komutu yazarak da kurulumu yapabilirsiniz.

PM> Install-Package EntityFramework


Kurma işlemimiz tamamlandı. Şimdi ise bütün projelerinizdeki System.Data.Entity referansını(Reference) silmeniz gerekiyor. Aslında Nuget paket yöneticisi bunu sizin yerinize otomatik olarak yapıyor ama siz yinede emin olmak için şöyle bir baksanız fena olmaz hani :)

Devam edelim;

Edmx dosyasının altında bulunan önceki versiyona ait edmx_dosya_adi.tt ve edmx_dosya_adi.Context.tt dosyalarını siliyoruz.
Aşağıdaki örnek ekran görüntüsündeki sarı ile işaretlenmiş BlogData.tt (altındaki tüm dosyalar dahil) ve BlogData.Content.tt dosyalarını siliyoruz.

Solution Explorer Edmx Silme


Sonrasında .edmx (Bir üst resimdeki BlogData.edmx gibi) dosyasını çift tıklayıp açıyoruz. Açtığınız da bazen boş olduğunu ve entity'lerin olmadığını görebilirsiniz.
Sakin olun kaybolan giden birşey yok:) birazdan gelecekler :)

Entity Framework 6.0 Add Code Generation Item

Dosya üzerinde sağ tuşa bastığınızda yukarıdaki gibi bir menü ile karşılacaksınız. "Add Code Generation Item..." tıklayın.


Karşımıza yukarıdaki ekran görüntüsü geliyor. Soldaki Data sekmesini seçtikten sonra sağdan EF 6.x DbContext Generator seçiyoruz. Name kısmına bu örnekte "BlogData.tt" yazıyoruz ama siz isterseniz başka isimde verebilirsiniz örneğin Model1.tt gibi. Sonrasında "Add" butonuna basıyoruz. Az önce sildiğimiz iki dosyanın EntityFramework 6.0 olarak yeniden oluşturulmasını sağlıyoruz. Dosyaları Solution Explorer'dan da görebilirsiniz.

Böylelikle edmx dosyamızı güncellemiş olduk. Dosyayı kapatıp tekrar açtığınızda entity'lerin geri geldiğini göreceksiniz ama henüz yapacaklarımız bitmedi.

Son olarak;
EF 6.0 ile birlikte gelen yeni yapı nedeniyle bazı objelerin NameSpace'leri değişti bu nedenle bazı "using" kullanımlarınızı güncellemeniz gerekiyor.

System.Data altında yer alan nesneler System.Data.Entity.Core altına taşınmış genel olarak Entity.Core'u eklemeniz yeterli.

Örneğin;
Önceki yeri : System.Data.Objects.ObjectContext
Yeni Yeri    : System.Data.Entity.Core.Objects.ObjectContext

Ayrıca aşağıdaki değişiklikleride yapmanız gerekebilir, benim projemde gerekti :)
  • System.Data.EntityState -> System.Data.Entity.EntityState
  • System.Data.Objects.DataClasses.EdmFunctionAttribute -> System.Data.Entity.DbFunctionAttribute
  • System.Data.Objects.EntityFunctions -> System.Data.Entity.DbFunctions
  • System.Data.Spatial -> System.Data.Entity.Spatial

Umarım anlatabilmişimdir.

Sevgiler,
Cihan.


Kaynak : http://msdn.microsoft.com/en-us/data/upgradeef6

Hiç yorum yok:

Yorum Gönderme