2009-02-05 2 views
3

Я понимаю причину отсутствия автоматического обновления ваших .dbml (Linq2Sql), .edmx (Linq2Entities) или .hbm.xml (NHibernate). В каждом из этих ORM-решений вам необходимо обновить эти файлы, если у вас есть изменения в базе данных. Есть ли способ обновить эти файлы автоматически, если вы на 100% уверены, что он ничего не сломает?Как вы управляете своим уровнем ORM, когда база данных претерпевает изменения?

Я достаточно хорошо знаком с миграциями в RoR. Есть ли инструмент миграции на основе зависимостей в мире .NET?

В целом, Как вы можете оставаться в движении с дизайном базы данных и не воссоздавать эти файлы сопоставления вручную снова и снова?

Просьба указать ссылку, если этот вопрос является дубликатом. Я не смог его найти.

ответ

1

Я не уверен, что ваше неуверенность в обновлении EDMX. Просто продолжайте и обновите свою модель из базы данных. Скорее всего, он будет работать. Но если это не так, просто получите старую версию из исходного элемента управления и внесите изменения вручную.

С LINQ to SQL, с другой стороны, это сложнее, поскольку функция обновления отсутствует. Вы должны удалить измененные объекты из своей модели, повторно добавить их и повторно применить любые сделанные вами изменения вручную. Опять же, контроль источника жизненно необходим; вы захотите сравнить файлы XML с предыдущей версией, чтобы убедиться, что вы ничего не забыли.

Я не уверен, что означает ваш вопрос о миграции. Да, есть инструмент (RikMigrations), который выполняет аналогичную миграцию в Rails. Но миграция, конечно, изменяет ваши метаданные базы данных. Они не меняют ваше ORM-сопоставление. Это сделано в другом месте, как в Rails, так и в .NET.

+0

моя проблема - удаление и перетаскивание назад edmx снова .. он получает любопытное повторяющееся – Perpetualcoder

+0

Вы думаете о Linq to SQL? EDMX - это платформа Entity Framework и не нуждается в этом. –