Зайдя сегодня с утра в менеджер пакетов NuGet в Visual Studio, обнаружил, что в писке обновления появилась prerelease версия Entity Framework 6. Заинтересовавшись, что же нового нас ждет решил узнать подробнее об этом обновлении. Информации пока не много, но кое-что узнать удалось.
Entity Framework 6 — это следующая версия Entity Framework, которая будет выпущена в скором времени. Сейчас альфа-версия Entity Framework 6 доступна из репозитория NuGet либо загрузить в виде исходных кодов с сайта CodePlex.
Кроме того на CodePlex также можно получить исходный код Entity Framework Power Tools. В скором будущем там же будет находится код проекта Entity Framework Designer.
Что нового в Entity Framework 6
Task-based async
Task-based async — позволяет Entity Framework использовать асинхронные запросы появившиеся в .NET Framework 4.5. Таким образом будут доступны – асинхронные запросы, асинхронное обновление данных, и т.п.
Stored Procedures & Functions in Code First — теперь появится возможность связывания ранимых процедур и функций с помощью Code First API.
Custom Code First conventions
Как известно при использовании подхода Сode First для генерации базы данных Entity Framework использует ряд соглашений по умолчанию. Они определяют правила создания таблиц и достаточны для большого числа ситуаций. Теперь есть возможность создания и регистрации собственных соглашений в Code First.
Enums, Spatial and Better Performance on .NET 4.0
После перемещения основных компонент, которые раньше входили в состав .NET Framework, теперь в пакет Entity Framework для NuGet появилась поддержка перечислений и пространственных типов данных. Кроме того увеличена производительности в сравнении с Entity Framework 5.
Code-Based Configuration
Традиционно конфигурация Entity Framework производилась в соответствующих файлах (web.config, app.config). Entity Framework теперь дает возможность производить конфигурацию в коде.
Updated Provider Model
В предыдущей версии Entity Framework некоторые из основных компонентов входили в состав NET Framework. В Entity Framework 6 все эти компоненты были перенесены в NuGet пакет. Это позволит в будущем команде разработки предоставлять больше обновлений и новых возможностей в более короткие сроки.
Dependency Resolution
Entity Framework теперь поддерживает паттерн Service Locator и у теперь учтены некоторые функциональные блоки, которые могут быть заменены пользовательскими реализациями.
Напомню, что паттерн Service Locator абстрагирует API-службы поиска (именования), зависимости от поставщика, сложности операции поиска и создания бизнес-объекта, и предоставляет клиентам простой интерфейс. Это уменьшает сложность клиента. Кроме того, один и тот же клиент, или другие клиенты, могут использовать Service Locator повторно.
Как получить?
Что бы попробовать в деле новую версию, ее можно достаточно быстро установить из репозитория NuGet.
Для этого (если вы используете Visual Studio 2010, или Visual Studio 2012), достаточно набрать в консоли менеджера пакетов:
Install-Package EntityFramework -Pre. Или вы можете загрузить проект с сайта CodePlex.
Это далеко не полный список нововведений. Однако, хочу еще раз напомнить — что сейчас доступна только prerelease версия, а это значит что использовать ее в коммерческих продуктах не рекомендуется.
Полезные ссылки
- Асинхронное программирование и C# 5.0
- Entity Framework. Часть 3 – Code First и соглашения
- EF6 Alpha 1 Available on NuGet
- Entity Framework Code-Based Configuration
- Code-based Configuration
- Entity Framework Providers for EF6
- Rebuilding EF providers for EF6
- Entity Framework 6
- Паттерн Service Locator
Автор: Ernado