Обновление с EF 4 до EF 5

Мое приложение основано на .NET 4.0 и EF 4. Теперь я смотрю на обновление до последних версий.

  • Есть ли какие-либо нарушения или поведенческие различия, которые могут негативно повлиять на мое приложение?
  • Насколько упрощен путь обновления? Выполняет ли обновление до EF 5 любые изменения кода или другие работы?
  • Есть ли какие-либо новые функции, связанные с первым кодом, который стоит обновить?

Ответы

Ответ 1

Насколько легкий путь обновления? Выполняет ли обновление до EF 5 любые изменения кода или другие работы?

Вам нужно будет перейти на .net 4.5 для большинства новых функций.

Есть ли какие-либо новые функции, связанные с первым кодом, который стоит переоценить?

Не совсем связано с первым кодом, потому что он перекрещивается, но стоит упомянуть: Поддержка Enum.

Ответ 2

EDIT: Прежде всего, EF 5/.NET 4.5 вызывает серьезную озабоченность, поскольку никогда не будет поддерживать Windows XP или Server 2003 (или ранее). Если вам нужна поддержка для любой из этих ОС, используйте EF 4.4 с .NET 4.0, в которой нет ничего интересного.

Кроме того, я ударил (простое) нарушение, связанное с перемещением пространств имен DataAnnotations:

В инфраструктуре Entity Framework с 4.1 по 4.3 включены дополнительные аннотации данных в пространство имен System.ComponentModel.DataAnnotations в Узел EntityFramework. В .NET 4.5 эти аннотации были перенесены на быть частью .NET Framework в Пространство имен System.ComponentModel.DataAnnotations.Schema Сборка System.ComponentModel.DataAnnotations.dll. Если вы используете 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, который по-прежнему применяется в RTM EF 5.

Короче говоря, мне пришлось добавить:

using System.ComponentModel.DataAnnotations; // had this already
using System.ComponentModel.DataAnnotations.Schema; // needed this one

в миллион мест.