Entity Framework'ün Geçmiş Sürümleri

Entity Framework'ün ilk sürümü 2008'de .NET Framework 3.5 SP1 ve Visual Studio 2008 SP1'in bir parçası olarak yayımlandı.

EF4.1 sürümünden başlayarak EntityFramework NuGet Paketi olarak gönderildi. Şu anda NuGet.org'da en popüler paketlerden biri.

4.1 ve 5.0 sürümleri arasında, EntityFramework NuGet paketi .NET Framework'ün bir parçası olarak gönderilen EF kitaplıklarını genişletti.

6. sürümden başlayarak EF bir açık kaynak projesi haline geldi ve .NET Framework'ten tamamen bant dışına taşındı. Başka bir deyişle, EntityFramework sürüm 6 NuGet paketini bir uygulamaya eklediğinizde, .NET Framework'ün parçası olarak gelen EF bitlerine bağımlı olmayan EF kitaplığının tam bir kopyasını alırsınız. Bu, yeni özelliklerin geliştirme ve teslim hızını biraz hızlandırmaya yardımcı oldu.

Haziran 2016'da EF Core 1.0'ı yayımladık. EF Core, yeni bir kod tabanını temel alır ve EF'nin daha basit ve genişletilebilir bir sürümü olarak tasarlanmıştır. Şu anda EF Core, Microsoft'ta Entity Framework Ekibi için geliştirmenin ana odak noktasıdır. Bu, EF6 için planlanan yeni bir ana özellik olmadığı anlamına gelir. Ancak EF6 hala bir açık kaynak projesi ve desteklenen bir Microsoft ürünü olarak korunur.

Aşağıda, her sürümde tanıtılan yeni özellikler hakkında bilgi içeren ters kronolojik sırada geçmiş sürümlerin listesi yer alır.

Visual Studio 2017 15.7'de EF Araçları Güncelleştirmesi

Mayıs 2018'de, Visual Studio 2017 15.7'nin bir parçası olarak EF Araçları'nın güncelleştirilmiş bir sürümünü yayımladık. Bazı yaygın ağrı noktaları için iyileştirmeler içerir:

EF Araçları'nın bu yeni sürümündeki bir diğer geliştirme de, yeni bir projede model oluştururken EF 6.2 çalışma zamanını yüklemesidir. Visual Studio'nun eski sürümlerinde, NuGet paketinin karşılık gelen sürümünü yükleyerek EF 6.2 çalışma zamanını (ve EF'in herhangi bir eski sürümünü) kullanmak mümkündür.

EF 6.2.0

EF 6.2 çalışma zamanı, Ekim 2017'de NuGet'e yayımlandı. açık kaynak katkıda bulunanlar topluluğumuzun çabaları için teşekkür ederiz, EF 6.2 çok sayıda hata düzeltmesi ve ürün geliştirmesi içerir.

EF 6.2 çalışma zamanını etkileyen en önemli değişikliklerin kısa bir listesi aşağıdadır:

EF 6.1.3

EF 6.1.3 çalışma zamanı, Ekim 2015'te NuGet'e yayımlandı. Bu sürüm yalnızca 6.1.2 sürümünde bildirilen yüksek öncelikli hatalara ve regresyonlara yönelik düzeltmeler içerir. Düzeltmeler şunlardır:

  • Sorgu: EF 6.1.2'de regresyon: OUTER APPLY tanıtıldı ve 1:1 ilişkileri ve "let" yan tümcesi için daha karmaşık sorgular eklendi
  • Devralınan sınıfta temel sınıf özelliğini gizlemeyle ilgili TPT sorunu
  • Metinde 'go' sözcüğü bulunduğunda DbMigration.Sql başarısız oluyor
  • UnionAll ve Intersect düzleştirme desteği için uyumluluk bayrağı oluşturma
  • Birden çok İçerir içeren sorgu 6.1.2'de çalışmıyor (6.1.1'de çalışıyor)
  • EF 6.1.1'den 6.1.2'ye yükselttikten sonra "SQL söz diziminizde hata var" özel durumu

EF 6.1.2

EF 6.1.2 çalışma zamanı, Aralık 2014'te NuGet'e yayımlandı. Bu sürüm çoğunlukla hata düzeltmeleri ile ilgili. Ayrıca topluluğun üyelerinden birkaç önemli değişikliği de kabul ettik:

  • Sorgu önbelleği parametreleri app/web.configuration dosyasından yapılandırılabilir
    <entityFramework>
      <queryCache size='1000' cleaningIntervalInSeconds='-1'/>
    </entityFramework>
    
  • DbMigration'da SqlFile ve SqlResource yöntemleri, dosya veya ekli kaynak olarak depolanan bir SQL betiğini çalıştırmanıza olanak sağlar.

EF 6.1.1

EF 6.1.1 çalışma zamanı, Haziran 2014'te NuGet'e yayımlandı. Bu sürüm, bir dizi kişinin karşılaştığı sorunlar için düzeltmeler içerir. Diğerleri arasında:

  • Tasarım Aracı: EF6 tasarımcısında ondalık duyarlıklı EF5 edmx açılırken hata oluştu
  • LocalDB için varsayılan örnek algılama mantığı SQL Server 2014 ile çalışmıyor

EF 6.1.0

EF 6.1.0 çalışma zamanı Mart 2014'te NuGet'e yayımlandı. Bu küçük güncelleştirme önemli sayıda yeni özellik içerir:

  • Araç birleştirme , yeni bir EF modeli oluşturmak için tutarlı bir yol sağlar. Bu özellik , ADO.NET Varlık Veri Modeli sihirbazını mevcut veritabanından tersine mühendislik dahil olmak üzere Code First modellerini oluşturmayı destekleyecek şekilde genişletir. Bu özellikler daha önce EF Güç Araçları'nda Beta kalitesinde kullanılabilirdi.
  • İşlem işleme hatalarının işlenmesi, yeni eklenen işlem işlemlerini kesme özelliğini kullanan CommitFailureHandler'ı sağlar. CommitFailureHandler, işlem yürütürken bağlantı hatalarından otomatik kurtarma sağlar.
  • IndexAttribute , Code First modelinizdeki bir [Index] özelliğe (veya özelliklere) bir öznitelik yerleştirerek dizinlerin belirtilmesine izin verir. Code First daha sonra veritabanında karşılık gelen bir dizin oluşturur.
  • Genel eşleme API'si , EF'nin özelliklerin ve türlerin veritabanındaki sütunlara ve tablolara nasıl eşlendiğine ilişkin bilgilere erişim sağlar. Geçmiş sürümlerde bu API dahiliydi.
  • App/Web.config dosyası aracılığıyla kesme noktası yapılandırma özelliği, uygulamayı yeniden derlemeden kesme avcılarının eklenmesini sağlar.
  • System.Data.Entity.Infrastructure.Interception.DatabaseLogger, tüm veritabanı işlemlerini bir dosyaya kaydetmeyi kolaylaştıran yeni bir kesme noktasıdır. Bu, önceki özellik ile birlikte, yeniden derlemeye gerek kalmadan dağıtılan bir uygulama için veritabanı işlemlerinin günlüğe kaydedilmesini kolayca açmanıza olanak tanır.
  • İskeleli geçişlerin daha doğru olması için geçiş modeli değişiklik algılama geliştirildi; değişiklik algılama işleminin performansı da iyileştirildi.
  • Başlatma sırasında azaltılmış veritabanı işlemleri, LINQ sorgularında null eşitlik karşılaştırması için iyileştirmeler, daha fazla senaryoda daha hızlı görünüm oluşturma (model oluşturma) ve birden çok ilişkilendirmeye sahip izlenen varlıkların daha verimli gerçekleştirilmesi gibi performans iyileştirmeleri .

EF 6.0.2

EF 6.0.2 çalışma zamanı, Aralık 2013'te NuGet'e yayımlandı. Bu düzeltme eki sürümü, EF6 sürümünde ortaya çıkan sorunları (EF5'ten bu yana performans/davranış gerilemeleri) düzeltmekle sınırlıdır.

EF 6.0.1

EF 6.0.1 çalışma zamanı, Ekim 2013'te EF 6.0.0 ile aynı anda NuGet'e yayımlandı, çünkü ikincisi birkaç ay önce kilitlenmiş bir Visual Studio sürümüne eklenmişti. Bu düzeltme eki sürümü, EF6 sürümünde ortaya çıkan sorunları (EF5'ten bu yana performans/davranış gerilemeleri) düzeltmekle sınırlıdır. En önemli değişiklikler EF modellerinin ısınması sırasında bazı performans sorunlarını düzeltmekti. Bu, ısınma performansının EF6'da odaklanılan bir alan olduğundan ve bu sorunlar EF6'da elde edilen diğer performans kazançlarından bazılarını olumsuz etkiliyordu.

EF 6.0

EF 6.0.0 çalışma zamanı, Ekim 2013'te NuGet'e yayımlandı. Bu, .NET Framework'ün parçası olan EF bitlerine bağımlı olmayan EntityFramework NuGet Paketine eksiksiz bir EF çalışma zamanının eklendiği ilk sürümdür. Çalışma zamanının kalan bölümlerini NuGet paketine taşımak, mevcut kod için bir dizi hataya neden olan değişiklik gerektiriyor. Yükseltme için gereken el ile gerçekleştirilen adımlar hakkında daha fazla bilgi için Entity Framework 6'ya Yükseltme bölümüne bakın.

Bu sürüm çok sayıda yeni özellik içerir. Aşağıdaki özellikler Code First veya EF Tasarım Aracı ile oluşturulan modellerde çalışır:

  • Zaman Uyumsuz Sorgu ve Kaydet , .NET 4.5'te kullanıma sunulan görev tabanlı zaman uyumsuz desenler için destek ekler.
  • Bağlan Ion Dayanıklılığı geçici bağlantı hatalarından otomatik kurtarmayı etkinleştirir.
  • Kod Tabanlı Yapılandırma , geleneksel olarak bir yapılandırma dosyasında gerçekleştirilen yapılandırmayı kodda gerçekleştirme seçeneği sunar.
  • Bağımlılık Çözümü , Hizmet Bulucu düzeni için destek sunar ve özel uygulamalarla değiştirilebilen bazı işlevleri kütüklere ayırdık.
  • Kesme/SQL günlüğü, basit SQL günlüğüyle EF işlemlerinin kesilmesi için alt düzey yapı taşları sağlar.
  • Test edilebilirlik geliştirmeleri, sahte çerçeve kullanırken veya kendi test çiftlerinizi yazarken DbContext ve DbSet için test çiftleri oluşturmayı kolaylaştırır.
  • DbContext artık zaten açık olan bir Db Bağlan ion ile oluşturulabilir ve bu sayede bağlam oluşturulurken bağlantının açık olup olmadığı (bağlantının durumunu garanti edemediğiniz bileşenler arasında bağlantı paylaşımı gibi) yararlı olabilecek senaryolar sağlanır.
  • Geliştirilmiş İşlem Desteği , çerçeve dışında bir işlem için destek ve Çerçeve içinde işlem oluşturmanın geliştirilmiş yollarını sağlar.
  • .NET 4.0'da Numaralandırmalar, Uzamsal ve Daha İyi Performans - .NET Framework'te kullanılan temel bileşenleri EF NuGet paketine taşıyarak artık .NET 4.0 üzerinde EF5'ten sabit listesi desteği, uzamsal veri türleri ve performans iyileştirmeleri sunabiliyoruz.
  • LINQ sorgularında Enumerable.Contains'ın performansı iyileştirildi.
  • Özellikle büyük modeller için geliştirilmiş ısınma süresi (görünüm oluşturma).
  • Takılabilir Çoğullaştırma ve Tekilleştirme Hizmeti.
  • Varlık sınıflarında Equals veya GetHashCode özel uygulamaları artık desteklenmektedir.
  • DbSet.AddRange/RemoveRange , bir kümeye birden çok varlık eklemek veya kümeden kaldırmak için iyileştirilmiş bir yol sağlar.
  • DbChangeTracker.HasChanges , veritabanına kaydedilecek bekleyen değişiklikler olup olmadığını görmek için kolay ve verimli bir yol sağlar.
  • SqlCeFunctions , SqlFunctions ile eşdeğer bir SQL Compact sağlar.

Aşağıdaki özellikler yalnızca Code First için geçerlidir:

  • Özel Kod İlk Kuralları , yinelenen yapılandırmayı önlemeye yardımcı olmak için kendi kurallarınızı yazmanıza olanak tanır. Basit kurallar için basit bir API'nin yanı sıra daha karmaşık kurallar yazmanıza olanak sağlayan bazı daha karmaşık yapı taşları sunuyoruz.
  • Ekleme/Güncelleştirme/Silme Saklı Yordamlarına Kod İlk Eşlemesi artık destekleniyor.
  • Idempotent migrations betikleri , herhangi bir sürümdeki veritabanını en son sürüme yükseltebilen bir SQL betiği oluşturmanıza olanak sağlar.
  • Yapılandırılabilir Geçiş Geçmişi Tablosu , geçiş geçmişi tablosunun tanımını özelleştirmenizi sağlar. Bu, Geçiş Geçmişi tablosunun düzgün çalışması için uygun veri türlerinin vb. belirtilmesi gereken veritabanı sağlayıcıları için özellikle yararlıdır.
  • Veritabanı Başına Birden Çok Bağlam, Migrations kullanılırken veya Code First veritabanını sizin için otomatik olarak oluşturduğunda veritabanı başına bir Code First modelinin önceki sınırlamasını kaldırır.
  • DbModelBuilder.HasDefaultSchema , Code First modelinin varsayılan veritabanı şemasının tek bir yerde yapılandırılmasını sağlayan yeni bir Code First API'dir. Daha önce Code First varsayılan şeması "dbo" olarak sabit kodlanmış ve bir tablonun ait olduğu şemayı yapılandırmanın tek yolu ToTable API'sini kullanmaktı.
  • DbModelBuilder.Configurations.AddFromAssembly yöntemi , Code First Fluent API'siyle yapılandırma sınıflarını kullanırken bir derlemede tanımlanan tüm yapılandırma sınıflarını kolayca eklemenize olanak tanır.
  • Özel Geçiş İşlemleri , kod tabanlı geçişlerinizde kullanılacak ek işlemler eklemenize olanak sağladı.
  • Varsayılan işlem yalıtım düzeyi, Code First kullanılarak oluşturulan veritabanları için READ_COMMITTED_SNAPSHOT olarak değiştirilerek daha fazla ölçeklenebilirlik ve daha az kilitlenme sağlar.
  • Varlık ve karmaşık türler artık iç içe sınıflar olabilir.

EF 5.0

EF 5.0.0 çalışma zamanı Ağustos 2012'de NuGet'e yayımlandı. Bu sürümde sabit listesi desteği, tablo değerli işlevler, uzamsal veri türleri ve çeşitli performans geliştirmeleri gibi bazı yeni özellikler tanıtılır.

Visual Studio 2012'deki Entity Framework Tasarım Aracı ayrıca model başına birden çok diyagram, tasarım yüzeyinde şekillerin renklendirilmesi ve saklı yordamların toplu içeri aktarılması için destek sağlar.

EF 5 sürümü için özel olarak bir araya topladığımız içeriğin listesi aşağıdadır:

EF 4.3.1

EF 4.3.1 çalışma zamanı, EF 4.3.0 sürümünden kısa bir süre sonra Şubat 2012'de NuGet'e yayımlandı. Bu düzeltme eki sürümü, EF 4.3 sürümünde bazı hata düzeltmeleri içeriyor ve Visual Studio 2012 ile EF 4.3 kullanan müşteriler için daha iyi LocalDB desteği sunuyor.

EF 4.3.1 sürümü için özel olarak bir araya topladığımız içeriğin listesi aşağıda verilmiştir. EF 4.1 için sağlanan içeriğin çoğu EF 4.3 için de geçerlidir:

EF 4.3

EF 4.3.0 çalışma zamanı, Şubat 2012'de NuGet'e yayımlandı. Bu sürüm, Code First tarafından oluşturulan bir veritabanının Code First modeliniz geliştikçe artımlı olarak değiştirilmesini sağlayan yeni Code First Migrations özelliğini içeriyor.

EF 4.3 sürümü için özel olarak bir araya topladığımız içeriğin listesi aşağıda verilmiştir. EF 4.1 için sağlanan içeriğin çoğu EF 4.3 için de geçerlidir:

EF 4.2

EF 4.2.0 çalışma zamanı Kasım 2011'de NuGet'e yayımlandı. Bu sürüm, EF 4.1.1 sürümüne yönelik hata düzeltmelerini içerir. Bu sürüm yalnızca hata düzeltmeleri içerdiğinden EF 4.1.2 düzeltme eki sürümü olabilir ancak 4.1.x sürümlerinde kullandığımız tarih tabanlı düzeltme eki sürüm numaralarından uzaklaşmamıza ve anlamsal sürüm oluşturma için AnlamSal Sürümler standardını benimsememize olanak sağlamak için 4.2 sürümüne geçmeyi tercih ettik.

EF 4.2 sürümü için özel olarak bir araya topladığımız içeriğin listesi aşağıda verilmiştir; EF 4.1 için sağlanan içerik EF 4.2 için de geçerlidir:

EF 4.1.1

EF 4.1.10715 çalışma zamanı Temmuz 2011'de NuGet'e yayımlandı. Bu düzeltme eki sürümünde hata düzeltmelerine ek olarak, tasarım zamanı araçlarının Code First modeliyle çalışmasını kolaylaştırmak için bazı bileşenler kullanıma sunulmuştur. Bu bileşenler Code First Migrations (EF 4.3'te bulunur) ve EF Power Tools tarafından kullanılır.

Paketin garip sürüm numarası 4.1.10715 olduğunu fark edeceksiniz. Anlamsal Sürüm Oluşturma'ya karar vermeden önce tarih tabanlı yama sürümlerini kullanırdık. Bu sürümü EF 4.1 düzeltme eki 1 (veya EF 4.1.1) olarak düşünün.

4.1.1 sürümü için bir araya topladığımız içeriğin listesi aşağıdadır:

EF 4.1

EF 4.1.10331 çalışma zamanı, Nisan 2011'de NuGet'te yayımlanan ilk çalışma zamanıydı. Bu sürüm, basitleştirilmiş DbContext API'sini ve Code First iş akışını içeriyor.

4.1.10331 olan ve gerçekten 4.1 olması gereken garip sürüm numarasını fark edeceksiniz. Ayrıca 4.1.10311 sürümü 4.1.0-rc olmalıdır ('rc', 'sürüm adayı' anlamına gelir). Anlamsal Sürüm Oluşturma'ya karar vermeden önce tarih tabanlı yama sürümlerini kullanırdık.

4.1 sürümü için bir araya topladığımız içeriğin listesi aşağıdadır. Çoğu, Entity Framework'ün sonraki sürümleri için hala geçerlidir:

EF 4.0

Bu sürüm Nisan 2010'da .NET Framework 4 ve Visual Studio 2010'a dahil edildi. Bu sürümdeki önemli yeni özellikler arasında POCO desteği, yabancı anahtar eşlemesi, gecikmeli yükleme, test edilebilirlik geliştirmeleri, özelleştirilebilir kod oluşturma ve Model First iş akışı yer aldı.

Entity Framework'ün ikinci sürümü olmasına rağmen, birlikte gönderildiği .NET Framework sürümüyle uyumlu hale getirmek için EF 4 olarak adlandırıldı. Bu sürümden sonra Entity Framework'ü NuGet'te kullanıma sunmaya başladık ve artık .NET Framework Sürümüne bağlı olmadığımız için anlamsal sürüm oluşturma işlemini benimsedik.

.NET Framework'ün sonraki bazı sürümlerinin, dahil edilen EF bitlerine önemli güncelleştirmeler gönderildiğini unutmayın. Aslında EF 5.0'ın yeni özelliklerinin çoğu bu bitlerde iyileştirme olarak uygulandı. Ancak, EF'nin sürüm oluşturma hikayesini rasyonalize etmek amacıyla, .NET Framework'ün parçası olan EF bitlerine EF 4.0 çalışma zamanı olarak başvurmaya devam ederken, tüm yeni sürümler EntityFramework NuGet Paketi'ni içerir.

EF 3.5

Entity Framework'ün ilk sürümü Ağustos 2008'de yayımlanan .NET 3.5 Service Pack 1 ve Visual Studio 2008 SP1'e dahil edildi. Bu sürüm, Database First iş akışını kullanarak temel O/RM desteği sağladı.