Upgrading Entity Framework 4.1 RC

22 Ağu

Entity Framework 4.1 RC yayınlandı ve eski sürümlerin bu sürüme yükseltilmesi faydalı olacaktır. Bu sürümde bazı küçük hatalar(bug) da giderilmiştir.

EF 4.1 RC  Upgrade sırasında izlenecek yöntem

  1. NuGet konsola uninstall-package EFCodeFirst yazarak eski paketi kaldırılır.
  2. NuGet konsola install-package EntityFramework yazarak yeni sürümü yüklenir.
  3. Birkaç satır kod ile CTP 5 sürümünden RC sürümüne geçiş sağlanır.

1. Uninstall Entity Framework 4.1 CTP 5

NuGet Package Manager eklentisi yüklü değilse buradan edinebilirsiniz.

  • İlk olarak  NuGet Package Manager Console açılarak yola çıkılır:
  • Package Manager penceresinde açılır listede(dropdown list) doğru projenin seçili olduğundan emin olunur.
  • Konsola uninstall-package EFCodeFirst yazarak ENTER tuşuna basılır.
  • View –> Other Windows –> Package Manager Console

Alternatif bir yöntem ise form arayüz (UI) ile NuGet paketin kaldırılmasıdır. Alternatif yol şu şekildedir.

  1. Projeye sağ tıklayarak Add Library Package Reference seçimi yapılır.
  2. Sol menüden Installed Packages seçilir
  3. Uninstall butonuna basarak EFCodeFirst paketi kaldırılır.

2.  Entity Framework 4.1 RC sürümünün NuGet ile yüklenmesi

EF 4.1 RC kurulumu yükleme dosyasını indirerekte kurulabilir fakat NuGet çok daha basit.

  • İlk olarak NuGet Package Manager Console açılarak başlanır. Konsolu açmak için şu yol izlenir:
  • Package Manager penceresinde açılır listede(dropdown list) doğru projenin seçili olduğundan emin olunur.
  • install-package EntityFramework komutu girilerek ENTER tuşuna basılır.
  • View –> Other Windows –> Package Manager Console

Alternatif bir yöntem ise form arayüz (UI) ile NuGet paketin yüklenmesidir. Alternatif yol şu şekildedir.

  1. Projeye sağ tıklayarak Add Library Package Reference seçilir.
  2. Sol menüden Online seçeneği tıklanır.
  3. Sağ üstteki arama kutusuna EntityFramework yazılır ve paketin listeye gelmesi beklenir.
  4. Paket seçilerek Install butonuna tıklandığında yükleme başlar.

Karşılaşılabilecek sorunlara dair ipuçları

 

İpucu 1

Önceki sürümde veritabanındaki store prosedürler gibi yapıları çağırmak işin kullanılan  SqlCommand komutu ExecuteSqlCommand olarak değiştirilmiş.

//return base.Database.SqlCommand(“DeleteAccounts”);
return base.Database.ExecuteSqlCommand(“DeleteAccounts”);

 

İpucu 2

ModelBuilder nesnesi DbModelBuilder olarak yeniden adlandırılmıştır.

//protected override void OnModelCreating(ModelBuilder modelBuilder)
protected override void OnModelCreating(DbModelBuilder modelBuilder)

 

İpucu 3

MapLeftKey ve MapRightKey extension metodlarının aşırı yüklenmiş metodlarıyla değiştirilmiştir. Aşağıdaki kodda verilen değişikliği inceleyebilirsiniz.

 

//modelBuilder.Entity<WatchList>().HasMany(w => w.Securities)
// .WithMany()
// .Map(map => map.ToTable("WatchListSecurity")
// .MapRightKey(s => s.Id, "SecurityId")
// .MapLeftKey(wl => wl.Id, "WatchListId"));
modelBuilder.Entity<WatchList>().HasMany(w => w.Securities)
       .WithMany()
       .Map(map => map.ToTable("WatchListSecurity")
       .MapRightKey("SecurityId")
       .MapLeftKey("WatchListId"));

Kaynak: http://blogs.msdn.com/b/adonet/archive/2011/07/25/ef-4-1-update-1-released.aspx