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
- NuGet konsola uninstall-package EFCodeFirst yazarak eski paketi kaldırılır.
- NuGet konsola install-package EntityFramework yazarak yeni sürümü yüklenir.
- 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.
- Projeye sağ tıklayarak Add Library Package Reference seçimi yapılır.
- Sol menüden Installed Packages seçilir
- 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.
- Projeye sağ tıklayarak Add Library Package Reference seçilir.
- Sol menüden Online seçeneği tıklanır.
- Sağ üstteki arama kutusuna EntityFramework yazılır ve paketin listeye gelmesi beklenir.
- 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