2012-07-21 72 views
10

我想升級我的應用程序到EF 5,以利用支持枚舉空間等功能。但是,除非我移動到.Net 4.5,否則我無法升級。是否有技術上的原因EF 5不完全支持.NET4.0?

我想知道.Net 4.5的哪些功能是EF 5使用的,它不能在.Net 4.0中完成?

+0

我希望更新的標題使它成爲「建設性」的問題。但是,即使某些技術上可行,在支持多個目標(想象它是否只使用一個新的「便利」4.5 API調用)時,尤其是在試圖推廣最新的時候,可能不會實際可行。 - 最大..也從.NET4.0到.NET4.5不是一個「CLR突破」的變化,如從.NET3.5到.NET4(或.NET1.1到.NET2)。 – 2012-07-21 17:27:07

+0

立即舉例:支持2個框架立即使需要的測試翻倍(每個框架都需要測試)**,即使**您沒有意識到任何技術問題。 – 2012-07-21 17:29:40

+2

[您可以通過NuGet安裝EF5 for .NET4.0](http://nuget.org/packages/entityframework),但您可能無法獲得所有功能。 – 2012-07-21 17:33:25

回答

15

我理解的是EF> = 4.1(包括EF 5)由

  • 的EF 「核心庫」 等(System.Data.Entity.dll),其是在.NET Framework
  • 附加包部分/裝配您可以通過下載的NuGet含有DbContext API和代碼優先發展

有計劃在2011年夏季(的Entity Framework June 2011 CTP),試圖釋放enum,spatia l支持和其他新功能(代碼優先遷移除外)作爲.NET 4.5發佈前的核心庫更新。但EF團隊已經決定對NuGet包進行這種帶外更新(這就是爲什麼EF 4.3已經具備了不需要接觸核心庫的Migrations功能),但是對於核心庫他們也是如此困難和不能做.NET 4.5之前版本:

有兩個邏輯部分的實體框架是.NET Framework和Visual Studio和 內附帶的「帶外的核心組件 '組件,我們可以在更頻繁的時間表上更新這些組件。我們目前正在研究如何以更頻繁的節奏更新 核心組件。 'EF June 2011 CTP'是我們第一次嘗試運送核心部件,更頻繁地出現 ,我們現在還沒有技術上準備好 這樣做。

核心組件包括:

  • 核心EF運行時(System.Data.Entity.dll & System.Web.Entity.dll)
  • EF設計

帶外分量的包括:(我們將來可能會出貨更多帶外 組件)

  • 所述的DbContext API &碼優先(EntityFramework.dll)
  • 使用的DbContext API使用模型首先&數據庫優先
  • EF電動工具
  • 代碼優先遷移

(引用自T4模板here)。

這意味着支持EF的enum將成爲.NET 4.5核心庫的一部分,而不是可下載的EF 5 NuGet軟件包。因此,新的EF功能如enum和空間支持不能與.NET 4.0一起使用。

更多關於歷史和「EF NuGet包」分離「EF核心庫」的原因是在這裏:http://blogs.msdn.com/b/adonet/archive/2011/10/18/how-we-talk-about-ef-and-its-future-versions.aspx

+0

所以我知道團隊希望非代碼優先的庫能夠利用枚舉,空間支持等。在這種情況下,發佈一個SP來更新VS 2010將是一個更便宜的選擇。迫使項目轉向.Net 4.5,並要求開發人員在僅僅2年的時間內轉向VS 2012,而不會在運行時發生重大變化,就像運行在金錢背後。我知道VS 2012是一個更好的產品。 :)我只是希望他們大幅降低VS 2012升級的價格。但我很高興未來,ASP.Net和EF將開放源代碼。 – Hemant 2012-07-21 17:51:54

+0

@Hemant至少它不像MSTest項目的自動「功能」..想在VS2010中進行.NET35測試? :( – 2012-07-21 18:14:05

+0

@Hemant:我發現了一些更多的引用和資源,幷包含在我的答案中,但沒有什麼新東西。 – Slauma 2012-07-21 18:26:08

相關問題