EntityFramework5發布,新功能介紹


        今天 vs2012  .net Framework 4.5   EntityFramework 5.0  三者共同發布了。 

因持續關注EF,所以每天都會關注ADO.NET官方博客(http://blogs.msdn.com/b/adonet/ ).  EF5 Released,現總結一下,與大家分享。

在介紹新特性之前,先與大家回顧一下EF版本變化及一些重要變更:


 框架                          EF         備注 

.net Framework 3.5    EF 1.0

.net Framework 4.0    EF 4.0   EF4.0是集成在 net framework中的,而4.1~4.4僅僅是在其上的引入,並非框架的本身

.net Framework 4.0    EF 4.1   引入了DbContext以及POCO模型,應該算是很大改進

.net Framework 4.0    EF 4.2   修復了4.1的幾個bug

.net Framework 4.0    EF 4.3   引入了Code First Migration.有了這個我們就不用通過丟棄數據庫修改表結構了。

.net Framework 4.0    EF 4.4   修復了4.3的幾個bug,這個也是剛不久發布,很少人用,但是支持.net framework 4.0

.net Framework 4.5    EF 5.0   最新版本 包括四個新特性,之后會主要介紹。

                              EF 6.0    未來版本,未發布  據官方博客稱,將會脫離.net Framework單獨存在


 

    首先,  EF5.0的四個新特性的使用必須在.net framework 4.5下 ,相當的坑爹,就這樣不支持.net  framework 4.0了,對於那些無法將服務器升級到.net framework 4.5(僅支持windows server 2008及以上)的產品項目微軟並不在乎,無限坑爹啊!!!!

 

EF5.0帶來了總共四個新特性:

1.Enum 類型的支持。  

5.0帶來的最優秀特性,Enum支持數據庫對應類型有  byte  int16 int32  int64 SByte 5中數據庫類型。

 這樣以后我們在開發的時候就無需再為了處理枚舉做一些多余的封裝了,真是大大減輕了開發者的代碼量啊,很實質。

同時支持Code Frist  以及通過 EF設計器來設計

 

2.Spatial 類型的支持。  這個類型一般在地里定位的時候用到的類型,例如數據庫中存儲 經度 或是 緯度的坐標即可以通過此類型進行存儲。現在做地里位置開發的碼農有福了。

同時支持Code Frist  以及通過 EF設計器來設計 
 

3.Table-Valued Functions  函數的支持。  

僅支持 DataBase First ,也就是僅僅只能通過設計器來實現支持。

例如:

     var students =  from s  in context. GetStudentGradesForCourse(CourseID) 
                             where s.Grade >= Grade
                             select  new
                            {
                                s.Person,
                                s.Course.Title

                            }; 

       紅色的部分就是我們在數據中寫的創建的函數。 這個個人不經常使用,主要是因為用函數寫一些邏輯會帶來維護上的一些麻煩,成本很大。

4.編輯器個功能的加強。

    可以在Context之間進行實體的拖拽,以及一些實體設計器顏色變化的控制等等。 快速開發的利器。主要因為我很少用設計器開發,所以也很少關注,大部分時間全花在CodeFrist上了,設計器這種簡單操作反而不會了,無所謂了,反正不喜歡設計器。

5.其實第五個可以不認為是新特性,應該算是性能的提升,EF5較之前版本在性能上有很大的提升,主要原因是由於對Linq ot Entity 緩存的處理。第一次通過Linq to Entity 查詢性能與之前版本幾乎一樣,但第二次及以后在進行同樣查詢就大大不一樣了,由於緩存了之前的查詢,大大減少了數據的查詢時間。

 

再就是在EF5中,默認創建的Context是DbContext了,以前默認ObjectContext需要手動改。從這點可以看出微軟是十分推崇DbContext的,因為他的確為我們帶來了許多方便,但是我們仍可以切換到ObjectContext,畢竟OjbectContext還是有許多底層東西的,DbContext僅僅是在他之上進行了一些封裝。 

 

也就總結道這些吧,本人不太會寫博客,很潦草,大家勉強看看吧。 有不對的請指出。

 

題外話:

其實我很好奇,EF5如果有什么Bug,微軟要怎樣應對版本的升級呢? 又要EF5.1 EF5.2 無線的....嗎?這樣講5.0集成在.net framework 4.5中有什么意義。你不可能因為EF5.0的一個小bug重新發布.net framework吧?天呢?好像我不應該考慮。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM