Существует ли ORM / Framework, который автоматически преобразует данные, когда я хочу изменить тип данных столбца в таблице?
Предположим, что у меня есть существующая база данных с существующими данными.
Существует ли какая-либо инфраструктура / ORM, которая генерирует сценарии преобразования данных SQL, когда мне нужно изменить тип данных столбца? Конечно, есть проблемы с конверсиями, такими как
- плавать в Int
- строка в int
, но я хотел бы иметь такую функциональность по умолчанию, которая автоматически преобразует данные из
- Int плавать
- int в строку.
Должен ли я всегда писать сценарии преобразования данных SQL в обоих случаях?
6 ответов
В мире.Net у меня был очень хороший опыт работы с LLBLGen Pro. Он поддерживает генерацию сценариев DDL для переноса базовой базы данных в обновленные определения сущностей. Вот краткое руководство по началу работы, которое показывает обзор того, как это работает, а также раздел документации для процесса проектирования Model-First.
Вы можете использовать его со своей собственной средой выполнения или просто как инструмент проектирования для Entity Framework, NHibernate или Linq to SQL.
SauceDB написан на.NET и способен автоматически изменять схему при изменении типа данных в объекте доступа.
Disclamer: я написал это
Есть http://nuget.org/packages/entityframework.migrations для примера.
Я бы порекомендовал http://dataobjects.net/.
Автоматическое обновление работает, когда мы добавляем новые классы и свойства в модель, но иногда необходимо выполнить некоторые конкретные изменения схемы, например переименование свойств или классов, в этом случае вы можете написать обработчик обновления(RenameFieldHint, RemoveFieldHint и т. Д.)