Я думаю, что вы хотите сделать, это перевернуть вопрос. Объекты могут автоматически генерироваться из базы данных, поэтому проблема заключается в использовании механизма .NET для поддержки схемы базы данных. Поскольку вы не используете NHibernate, который требуется этим другим решениям, я бы предложил использовать MigratorDotNet . MigratorDotNet использует ту же идею, что и миграции Ruby on Rails:
- Ваша база данных отслеживает его версию
- Каждый раз, когда вы хотите изменить схему, вы пишете небольшой класс для обработки обновления (и, возможно, понижения)
- Назначьте этим классам порядок выполнения
- Если база данных никогда не обновляется, просто выполните методы обновления классов в порядке
Поскольку вы будете восстанавливать свои сущности только во время компиляции, я бы порекомендовал запустить сценарии миграции, а затем восстановить ваши сущности, как часть процесса сборки. MigratorDotNet уже поставляется с MSBuildTarget , добавление которого потребует всего пару кликов.