Dot-Net

從 EF 4 升級到 EF 5

  • March 14, 2013

我的應用程序基於 .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

到無數個地方。

引用自:https://stackoverflow.com/questions/12137939