Создание схемы БД из объектов домена in.NET


В EJB 3.0 вы можете написать свои доменные объекты, а затем преобразовать их в сущности (добавив атрибут @ Entity и т. д.) и лежащий в основе механизм JPA (скажем, Hibernate) может автоматически генерировать схему БД. Что еще лучше, он также обновит БД при обновлении модели домена в коде Java.

Я ищу эквивалент этой функциональности на платформе .NET. Это возможно с ADO.NET структура сущностей?

6   2  

6 ответов:

DataObjects.Net также автоматически генерирует и обновляет схему базы данных в соответствии с моделью домена. Но самое интересное, Как обновить сохраненные данные, если модель и схема базы данных изменены. Можно ли это сделать на уровне сущности, а не с помощью низкоуровневого SQL?

Mindscape LightSpeed поддерживает это - полная схема кругового отключения с первой моделью или первой разработкой базы данных. Это коммерческий продукт, но есть бесплатная версия для небольших баз данных.

Как уже упоминалось, Entity Framework добавит некоторые из этих функций в своем следующем выпуске, но это еще не скоро.

Детали конструктора скорости света с первой поддержкой модели

Активная запись - это путь вперед! Вы помечаете объекты атрибутами и можете сгенерировать схему базы данных или саму базу данных. Существует также инструмент под названием Active Writer , который позволяет вам рисовать модели и писать коды с правильными атрибутами для вас.

Это, по сути, оболочка для NHibernate, но это делает вещи немного проще, поскольку вы делаете отображение на объектах, а не в XML-документах.

Мы использовали это на нескольких проектах и оказалось быстрым способом реализации сложных систем.

Да-в будущем: -) текущая Entity Framework не поддерживает подход "домен-первый", но следующая версия (EF v4) будет. Это будет поставляться с .NET 4.0 / Visual Studio 2010 - но не спрашивайте меня, когда! Я не знаю (как и Microsoft).

Марк

NHibernate - это .NET-порт Hibernate, и я думаю, что он включает инструменты для создания схемы базы данных для ваших сущностей.

Существуют сторонние фреймворки, которые делают это в .NET сегодня.