Обновление с 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
в миллион мест.