Выпущены Entity Framework 4.3.1 RTW и 5.0 Beta

Как и было обещано, с выходом .NET Framework 4.5 Beta выпущена Entity Framework 5.0.0 Beta. Кроме того, стала доступна версия 4.3.1, в которой исправлен ряд ошибок. Давайте по очереди рассмотрим что было сделано в каждой их них.

Entity Framework 4.3.1

Что исправлено в Entity Framework 4.3.1?

Изменения в Entity Framework 4.3.1 по сравнению с 4.3.0:

  • Шаблоны создания DbContext в Model First и Database First были переименованы из ADO.NET DbContext Generator в EF 4.x DbContext Generator. Это сделано для того, чтобы его можно было отличить от EF 5.x DbContext Generator, который добавляется при установке Entity Framework 5.0.
  • Добавлена возможность задействовать Code First Migrations для существующей базы данных без создания кода для программной миграции в дальнейшем. Для этого необходимо использовать ключ -IgnoreChanges: Add-Migration InitialMigration -IgnoreChanges.
  • Visual Studio 11 включает в поставку LocalDb, которая является альтернативой SQL Express. Установочный пакет Entity Framework проверяет какая из указанных СУБД запущена и настраивает конфигурацию для использования её по умолчанию в Code First. Если же не найдена ни одна из них, то устанавливаются параметры для подключения к LocalDb.
  • Исправлена ошибка, которая проявлялась в выбросе исключения "Unknown Columnname" при обращении к таблице, использующей для отображения наследования схему "Таблица для конкретного типа" (Table per Concrete Type).
  • Исправлена ошибка, в результате которой свойство не корректно отображалось в соответствующей колонке таблицы. В частности, при использовании DataTypeAttribute или метода HasColumnType() Fluent API, она создавалась без учета указанного типа данных (xml, money и т. д.).
  • Исправлена ошибка, из-за который колонки численного типа не могли быть заданы как Identity.
  • Улучшен текст сообщение об ошибках в исключениях, выбрасываемых при инициализации контекста из-за проблем с подключением к базе данных.
  • Добавлена поддержка configSource в файлах конфигурации для Code First Migrations.
  • Исправлена ошибка при использовании Moq с DbContext (описание на Stack Overflow).

Установка Entity Framework 4.3.1

Entity Framework 4.3.1 доступна для установки через NuGet. Имя установочного пакета: EntityFramework. Команды Package Manager Console:

  • для установки: Install-Package EntityFramework
  • для обновления с предыдущих версий: Update-Package EntityFramework

Совместимость

Данная версия совместима как с Visual Studio 2010, так и Visual Studio 11 Beta. Она предназначена для разработки приложений, ориентированных на .NET Framework 4.0.

Для разработки приложений под .NET Framework 4.5 рекомендуется использовать Entity Framework 5.0.0-beta1 по следующей причине: библиотека Entity Framework версии 4.1 и выше содержит дополнительные атрибуты в пространстве имен System.ComponentModel.DataAnnotations. В .NET Framework 4.5 они были перемещены в System.ComponentModel.DataAnnotations.Schema и располагаются в системной сборке System.ComponentModel.DataAnnotations.dll. Таким образом, возникнет ситуация, когда одно и тоже имя объявлено в разных сборках. Поэтому использование Entity Framework 4.x возможно только в случае, если в коде не задействованы эти атрибуты.

Entity Framework 5.0.0-beta1

Требования Entity Framework 5.0.0-beta1.

Для полноценного использования Entity Framework 5.0.0-beta1 потребуется установленная .NET Framework 4.5 Beta. Это автоматически обозначает необходимость в Visual Studio 11 Beta. Возможность установки Entity Framework 5.0.0-beta1 для работы в Visual Studio 2010 будет отмечена дальше в разделе "Совместимость".

Что нового в Entity Framework 5.0.0-beta1?

В первую очередь необходимо отметить, что Entity Framework 5.0.0-beta1 включает в себя все исправления, сделанные в версии Entity Framework 4.3.1. Кроме того, она содержит ряд новых возможностей, использующих новую .NET Framework 4.5 Beta:

  • Наконец добавлена поддержка свойств типа enum, что позволяет отображать их в таблицах баз данных. Она доступна для использования во всех подходах: Model, Database и Code First.
  • Пространственные типы данных теперь могут быть отражены в Модели. Для этого введены следующие типы: DbGeography и DbGeometry. Они также доступны в Model, Database и Code First.
  • Появилась возможность использовать функции, возвращающие пользовательские таблицы (Table-Valued User-Defined Functions) при применении подхода Database First.
  • Увеличена скорость работы, по сравнению с предыдущими версиями 4.x. В сообщении, опубликованном в блоге разработчиков Entity Framework, сообщается об увеличении быстродействия в реальных приложениях до 67%.

Кроме того, дизайнер сущностей (Entity Model Designer) в Visual Studio 11 получил следующие возможности:

  • Поддержка несколько диаграмм для Модели, что позволяет визуализировать её отдельные части;
  • Возможность указания цвета фигуры на рабочей поверхности;
  • Пакетный импорт процедур из базы данных, позволяющий добавлять их группами при создании Модели.

Известные проблемы Entity Framework 5.0.0-beta1

  • При использовании команд Code First Migrations в Visual Studio 2010 возникает следующая ошибка: Could not load file or assembly 'Microsoft.VisualStudio.Shell.10.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

Установка Entity Framework 5.0.0-beta1

Entity Framework 5.0.0-beta1 доступна для установки в проект с использованием NuGet. Имя установочного пакета: EntityFramework. Обратите внимание на использование ключа –IncludePrerelease в командах NuGet:

  • для установки: Install-Package EntityFramework –IncludePrerelease
  • для обновления с предыдущих версий: Update-Package EntityFramework –IncludePrerelease

Совместимость

Entity Framework 5.0.0-beta1 полностью совместима с Visual Studio 11 Beta и может быть использована для разработки под .NET Framework 4.0 и 4.5. Однако, новые возможности, описанные выше, доступны только при создании приложений под .NET Framework 4.5.

Также Entity Framework 5.0.0-beta1 может быть работать с Visual Studio 2010. Но при этом необходимо учесть, что при выполнении команд Code First Migrations будет возникать описанная выше ошибка.

Дополнительные материалы (на английском)

Приведенные ниже две статьи описывают принципы различных подходов (Code / Model / Database First), которые доступны при использовании Entity Framework:

В следующих материалах подробно рассмотрены возможности как автоматической (automatic), так и программной (code-based) миграции данных:

Поддержка

Вопросы, касающиеся текущей версии Entity Framework, можно задать на официальном форуме: ADO.NET Entity Framework.

Кроме того, ввиду большой активности сообщества на сайте Stack Overflow, разработчики Entity Framework обещают уделять больше внимания заданным там вопросам. При этом они просят не забывать добавлять к сообщениям тег "entity-framework".

Комментарии (2) -

Александр 17.05.2012 19:00:21

При использовании команд Code First Migrations в Visual SRTUDIO 2010

Исправьте ошибку

@ Александр: Спасибо за сообщение. Поправил.

Добавить комментарий