EntityFramework5發布,新功能介紹

2022-01-28 16:30:54 字數 2523 閱讀 6414

今天 vs2012  .net framework 4.5   entityframework 5.0  三者共同發布了。 

因持續關注ef,所以每天都會關注ado.net官方部落格( ).  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吧?天呢?好像我不應該考慮。

Entity Framework 架構簡介

當微軟的wcf 大行其道,通用資料訪問模型entity framework卻稍遜一籌,有很多需要完善和進步的地方,本文對entity framework 架構做一下簡介。實體框架 entitry framework 以下簡稱ef 看起來像乙個有趣的技術,更強大,比linq to sql 更先進。這兩...

entity framework 批量刪除

以前用sql寫批量刪除的時候,感覺挺利索的,簡潔地寫了 public bool delectusersuggest string addsql 然後在頁面層直接呼叫 現在用entity framework,感覺有點麻煩不能直接delete,還要先把資料查出來,以下是主要 1 先查出實體 region...

Entity Framework 動態查詢

不想多說什麼直接說 region 搜尋並分頁 ljy 傳入搜尋條件,當前頁碼,每頁的顯示的條數,資料的總數 輸出引數 三個引數,返回 商實體 搜尋條件 當前頁碼 每頁的顯示的條數 資料的總數 public iqueryable endregion 在頁面呼叫時如果通過時間來查詢,請記住一定要這樣寫 ...