Обработка первых миграций кода Entity Framework в Team Source Control - PullRequest
0 голосов
/ 11 мая 2018

В настоящее время я работаю в команде, которая использует Entity Framework 6.1.3 в качестве основной структуры объектно-реляционного отображения (ORM).

В большинстве случаев это работает очень хорошо, но проблемы начинаются, когда два или более разных члена команды добавили миграции, и их следует объединить.

Пример от Microsoft:

enter image description here

Чтобы постоянно обновлять model snapshot, мы обычно Add a blank 'merge' migration обновляем снимок.Из PMC:

Add-Migration "Fix merge" –IgnoreChanges 

Конечно, мы могли бы update the model snapshot in the last migration, но, поскольку мы используем запросы извлечения и проверяем код друг друга, часто могут быть две ожидающие миграции, но ни одна из них не добавляется в master ветки пока нет, потому что они не рецензируются.

Учитывая пустую миграцию, у нас, однако, также возникли проблемы.Пример: две миграции синхронизированы с master, и снимок модели не синхронизирован.Разработчик внес некоторые изменения в модели базы данных, а затем выполняет слияние с мастером.Разработчик должен добавить пустое слияние для синхронизации снимка модели.Проблема с использованием –IgnoreChanges состоит в том, что миграция будет пустой, даже если есть какие-то изменения, которые разработчик внес в модели в своей ветке.Если –IgnoreChanges не используется, то каждое изменение из новых миграций также будет отображаться и, вероятно, вызовет исключение, потому что код будет добавлен дважды.

https://msdn.microsoft.com/en-us/library/dn481501(v=vs.113).aspx

Есть ли какие-либоиначе мы могли бы решить это в коде?Сейчас мы предупреждаем о миграциях в Slack, чтобы дать им приоритет в запросах по запросу, но это далеко от оптимального потока.Учитывая то, что я читал, я не думаю, что это возможно, но я бы с радостью ошибся.Учитывая поток запросов на извлечение, который мы используем сегодня, обновление снимка модели в последней миграции не всегда работает для нас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...