從 EF 4 升級到 EF 5
我的應用程序基於 .NET 4.0 和 EF 4。我現在正在考慮升級到最新版本。
- 是否有任何可能對我的申請產生不利影響的重大變化或行為差異?
- 升級路徑有多容易?升級到 EF 5 是否需要任何程式碼更改或其他工作?
- 是否有任何與程式碼優先相關的新功能值得升級?
升級路徑有多容易?升級到 EF 5 是否需要任何程式碼更改或其他工作?
您必須升級到 .net 4.5 才能使用大多數新功能。
是否有任何與程式碼優先相關的新功能值得升級?
與程式碼優先不完全相關,因為它是橫切的,但仍然值得一提:Enum support。
編輯:首先,EF 5/.NET 4.5 的一個主要問題是永遠不會支持 Windows XP 或 Server 2003(或更早版本)。如果您需要對其中任何一個作業系統的支持,請使用帶有 .NET 4.0 的 EF 4.4,它沒有任何有趣的新東西。
此外,我遇到了與 DataAnnotations 移動命名空間相關的(簡單)重大更改:
Entity Framework 4.1 到 4.3 在 EntityFramework 程序集中的 System.ComponentModel.DataAnnotations 命名空間中包含了額外的數據註釋。在 .NET 4.5 中,這些註釋被移動到 System.ComponentModel.DataAnnotations.dll 程序集的 System.ComponentModel.DataAnnotations.Schema 命名空間中成為 .NET Framework 的一部分。如果您使用的是 EF 4.x 並以 .NET 4.5 為目標,則會導致在不同程序集中具有相同名稱的兩個數據註釋。
請參閱http://blogs.msdn.com/b/adonet/archive/2012/02/29/ef4-3-1-and-ef5-beta-1-available-on-nuget.aspx,它仍然適用於 EF 5 RTM。
簡而言之,我不得不補充:
using System.ComponentModel.DataAnnotations; // had this already using System.ComponentModel.DataAnnotations.Schema; // needed this one到無數個地方。