下定決心以後用EF6.x版本了。想看看有什麼更新特性,結果去人家github老巢一看,EF7 for vnext,頓時蛋疼了起來。想想國内這種技術氛圍,有多少還在用ASP的,有多少還在用ADO.NET的(我指傳統那種直接sql弄得不亦樂乎的),有多少個aspx結尾的網站還在開發的路上,就不想再多說什麼了。
EF6是和VS2013一起釋出的,是以要體驗EF6的完整特性請做個自帶VS2013光環的程式員。
本文基于
http://msdn.microsoft.com/en-us/data/jj574253搬運,然後參考了一些連結。栗子見原文。本文純粹概要翻譯。
EF6以下的見
http://msdn.microsoft.com/zh-cn/data/jj574253Release | 摘要 | 備注 |
EF 6.1 | 1工具整合。 EF Power Tools提供了一個一緻的方式去建立一個新的EF模型 2事務送出失敗處理.CommitFailureHandler利用了一個攔截事務操作的新特性,能夠自動從失敗的連接配接中恢複并送出事務 3IndexAttribute.在Code First model裡的屬性上标注 [Index],Code First 就會在資料庫裡對相應字段建立索引。 4公共映射API.該API用來訓示屬性和類是如何對應資料庫的字段列和資料表的,通路修飾符從以往的internal提升為public。 5在配置檔案(APP/Web.config)裡配置攔截器而無需重新編譯程式。 By the way,System.Data.Entity.Infrastructure.Interception.DatabaseLogger是一個能夠輕松記錄資料庫操作的一個新的攔截器。結合先前提到的特性,能夠無需重編譯而對一個部署好的程式接入資料操作記錄功能。 6遷移模型的變化檢測更為準确,性能也得到了提高。 7性能提升。展現在初始化期間減少資料庫操作,linq查詢null相等比較的優化,更快的視圖生成(模組化),更有效地跟蹤多個關聯實體 8NuGet上能夠找到該版本運作時。 9微軟下載下傳中心中有VS2012,2013的工具用于 Model First or Database First。 | 1VS2013裡添加實體模型會有多個選項 8 這算什麼狗屁新特性... |
EF 6.0.2 | 修正了一些bug。 | |
EF 6.0.1 | ||
EF 6 | 一、工具更新for VS 二、運作時 Entity Framework 6包含了以下運作時特性,它們同時适用于代碼優先和EF設計器: 01異步查詢和儲存.基于.NET4.5的異步模式 02自動連接配接恢複(Connection Resiliency). 03基于代碼的配置 04“依賴解決方案(Dependency Resolution)”.依賴項解析提供了服務定位模式支援,以及可以實作自定義替換。 05攔截/SQL日志. 06經過改進的可測試性。表現在mock或者自己寫的測試的借助下,對DbContext和DbSet的測試更為簡單 07使用已經打開的DbConnection建立DbContext 08改進的事務支援. 09在.NET 4.0中,有更好的性能,并且支援枚舉和空間資料類型 10增強了LINQ查詢中的Enumerable.Contains方法 11經過改進的視圖生成 12“可插式複數化(Pluggable Pluralization)”和“單數化服務(Singularization Service)” 13實體類Equals或GetHashCode方法的自定義實作 14DbSet.AddRange/RemoveRange.添加/移除DbSet裡的多個實體 15DbChangeTracker.HasChanges.檢視對資料庫任何挂起的更改。 16SqlCeFunctions.提供在 LINQ to Entities 查詢中,調用資料庫中函數的公共語言運作時 (CLR) 方法。 下面的運作時特性隻适用于Code First: 01自定義代碼優先約定 02支援将Code First映射到插入、更新、删除的存儲過程 03幂等遷移腳本.支援生成從任意版本更新到最新版本的sql腳本。 04可配置的遷移曆史表。 05每個資料庫有多個上下文 06DbModelBuilder.HasDefaultSchema。一個新的Code First API,允許預設的資料庫架構在一處進行配置 07DbModelBuilder.Configurations.AddFromAssembly方法。允許在以Code First Fluent API使用配置類的時候,在一個元件内定義配置類。 08自定義遷移操作 09預設事務隔離級别改為READ_COMMITTED_SNAPSHOT。用Code First建資料庫的時候更靈活,死鎖更少。 10Entity and complex types can now be nestedinside classes.(真心查不到nestedinside的意思) | 16. using System.Data.Entity.SqlServer; |
其他參考連結:
http://www.infoq.com/cn/news/2013/08/entity-framework-6-rc http://www.infoq.com/cn/news/2013/06/EF6-Breaking-Changes