Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Entity Framework Code First нюансы в работе  [new]
gelit
Member

Откуда:
Сообщений: 14
Есть команда из нескольких человек. Есть проект EF Code First.

Подскажите как правильно работать с миграциями что бы не было конфликтов? Могут ли миграции добавлять несколько человек или только один?
22 дек 18, 11:04    [21770970]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
hVostt
Member

Откуда:
Сообщений: 18561
gelit,

суть миграций, что они должны идти один за другим.

исполнить такой же трюк с БД, как с контролем версий, когда можно смержить 100500 веток и устранить конфликты руками -- не выйдет.

дело тут не в EF.

добавляйте миграции друг за другом, по договорённости. если так вышло, что вы добавили миграцию, и получили код, где кто-то создал миграцию до вас, откатите свою миграцию и создайте снова.

если вас не тыща человек, разбросанных по земному шару, проблем не будет :)
22 дек 18, 19:02    [21771136]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
ViPRos
Member

Откуда:
Сообщений: 9883
hVostt,

можно было бы просто сказать - ЕФ этого не умеет :)
22 дек 18, 22:52    [21771216]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
Агнец за бортом
Member

Откуда:
Сообщений: 1351
EF может переклинить когда в жало работаешь, что уж говорить о команде?

Пускай миграции генерит ОДИН человек, по доменной модели - и всё. База одна - человек один - точка генерации миграций одна. И всё.
23 дек 18, 00:07    [21771230]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
hVostt
Member

Откуда:
Сообщений: 18561
ViPRos
hVostt,

можно было бы просто сказать - ЕФ этого не умеет :)


при чём тут умение-то? ты можешь его заставить засунуть миграции в любом порядке, это просто защита от идиота. :)
23 дек 18, 02:26    [21771265]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
hVostt
Member

Откуда:
Сообщений: 18561
Агнец за бортом
EF может переклинить когда в жало работаешь, что уж говорить о команде?

Пускай миграции генерит ОДИН человек, по доменной модели - и всё. База одна - человек один - точка генерации миграций одна. И всё.


никогда проблем не было. не нагнетайте )
23 дек 18, 02:27    [21771266]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
Агнец за бортом
Member

Откуда:
Сообщений: 1351
hVostt
Агнец за бортом
EF может переклинить когда в жало работаешь, что уж говорить о команде?

Пускай миграции генерит ОДИН человек, по доменной модели - и всё. База одна - человек один - точка генерации миграций одна. И всё.


никогда проблем не было. не нагнетайте )


Что такое "переклинить"?

Это когда уже недостаточно просто изменить классы модели и вызвать команды добавления миграций и обновления DB. Нужно конфигурить файлы конфигов с указанием - на какие именно таблицы мапить связи.

СВЯЗИ.

Ибо EF один раз пройдёт update корректно, а потом (после откатов туда-сюда) - запутается в именах и вывалится с ошибкой.

В своих далеко не сложных проектах - постоянно надо "колдовать" с EF.

Но удобство работы с данными всё окупает.
23 дек 18, 12:18    [21771329]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
gelit
Member

Откуда:
Сообщений: 14
hVostt,

Добавлять друг за другом не получится, у каждого свой бранч, перед выкладкой все сливаются в основной бранч.
Как тогда правильно построить процесс? Перед сливанием откатывать миграции и не заливать их в свой бранч? Потом генерить миграции в основной ветке?
23 дек 18, 15:14    [21771427]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
hVostt
Member

Откуда:
Сообщений: 18561
gelit
hVostt,

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


давайте ещё раз.

вам прежде, чем первый этаж построить, нужно сделать фундамент.
а вы говорите, "у нас так не получится", -- ВСМЫСЛЕ??
БД это не код, это единая структура данных: таблиц, связей, функций и т.п. всё между собой взаимосвязано.

сама суть миграций в том, что они идут друг за другом, каждый кирпичик кладётся на существующий.
одна миграция переименовывает поле, а вторая делает связь на это поле, что должно получиться?
как вы это собираетесь "мержить"? это же не строчки кода.

как я уже и сказал, если кто-то успел сделать миграцию перед вашей, то свою откатываете, потом создаёте заново. делов на пару минут. какой ещё процесс вам тут нужен?
24 дек 18, 00:11    [21771662]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
hVostt
Member

Откуда:
Сообщений: 18561
Агнец за бортом
Ибо EF один раз пройдёт update корректно, а потом (после откатов туда-сюда) - запутается в именах и вывалится с ошибкой.


с чего бы это?
откат миграции не основывается на маппинге, это конкретный сценарий, даже если ты все свои ентити грохнешь, всё сработает.
24 дек 18, 00:12    [21771663]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38640
hVostt,
Вы спорите про одно и то же.
Один говорит что точка миграции одна. Второй что коммиты для мерже следуют друг за другом.
24 дек 18, 07:28    [21771714]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
love_bach
Member

Откуда:
Сообщений: 681
gelit
Есть команда из нескольких человек. Есть проект EF Code First.

Подскажите как правильно работать с миграциями что бы не было конфликтов? Могут ли миграции добавлять несколько человек или только один?


1. чтобы при миграциях не было конфликтов вообще - не получится
2. конечно, добавлять миграции может много человек. это такой же код, как и все остальное
3. правильно - отказаться от миграций EF, делать их руками, например, чз FluentMigrator. миграции, которые автоматом генерятся EF - это днище.
24 дек 18, 07:37    [21771718]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38640
love_bach,

Create.Table("EXAMPLE_TABLE")
          .WithColumn("ID").AsInt16().NotNullable().PrimaryKey("PK_EXAMTABL_ID")
      

?
Нет уж. Я лучше на SQL.
24 дек 18, 08:35    [21771729]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
love_bach
Member

Откуда:
Сообщений: 681
Petro123
love_bach,

Create.Table("EXAMPLE_TABLE")
          .WithColumn("ID").AsInt16().NotNullable().PrimaryKey("PK_EXAMTABL_ID")
      

?
Нет уж. Я лучше на SQL.


да, так даже лучше
24 дек 18, 08:37    [21771730]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
love_bach
Member

Откуда:
Сообщений: 681
love_bach
Petro123
love_bach,

Create.Table("EXAMPLE_TABLE")
          .WithColumn("ID").AsInt16().NotNullable().PrimaryKey("PK_EXAMTABL_ID")
      

?
Нет уж. Я лучше на SQL.


да, так даже лучше


просто тут уже есть запускатель миграций и таблица версий. чтобы не боянить свой
24 дек 18, 08:40    [21771731]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38640
love_bach,
Угу. Дай и js язык заменим на что нибудь.
Язык бд заменили. Теперь js заменим.
24 дек 18, 08:59    [21771743]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
hVostt
Member

Откуда:
Сообщений: 18561
love_bach
3. правильно - отказаться от миграций EF, делать их руками, например, чз FluentMigrator. миграции, которые автоматом генерятся EF - это днище.


всё днище, что не удалось осилить.

есть знакомый программер, который считает всё кроме его ЯП днищем, потому что сколько не пытался выйти за рамки своего ЯП, не получается. поэтому днище :)
24 дек 18, 11:42    [21771853]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
hVostt
Member

Откуда:
Сообщений: 18561
Petro123
hVostt,
Вы спорите про одно и то же.
Один говорит что точка миграции одна. Второй что коммиты для мерже следуют друг за другом.


лично я не спорю.

я работал в проектах, где на EF пилили много человек, БД большая и сложная, всё на code-first-миграциях и всё было нормально. автомиграции работают отлично, нужно нормально описывать модель.

проблемы с конфликтами решались на раз. затягиваешь изменения, видишь кто-то влез вперёд тебя, откатываешь свою миграцию, создаёшь заново. делов на две минуты.

также видел тех, кто не осилил, просто тупо не въехал, не сумел ни разобраться, ни понять.
они ведут в папке sql-файлики, изолировано. потом один парень из этого собираешь большой sql, чтобы накатитить на продовую БД.

кому-то по душе мартышкин труд. как говорится, не умеешь работать головой -- работай руками!
24 дек 18, 11:46    [21771858]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
gelit
Member

Откуда:
Сообщений: 14
Еще вопрос накатывания вьюх, процедур, триггеров вместе с миграциями.
Как этот процесс лучше организовать?
26 дек 18, 11:37    [21773700]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38640
gelit
Еще вопрос накатывания вьюх, процедур, триггеров вместе с миграциями.
Как этот процесс лучше организовать?
нельзя быть немножко беременным.
Это уже DatabaseFirst.
26 дек 18, 12:38    [21773745]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
gelit
Member

Откуда:
Сообщений: 14
Petro123,

При Code First подходе есть только таблички? Никакой логики на стороне БД нельзя делать?
26 дек 18, 13:27    [21773789]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
Агнец за бортом
Member

Откуда:
Сообщений: 1351
gelit
При Code First подходе есть только таблички?


Только классы.Картинка с другого сайта.
26 дек 18, 13:36    [21773808]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38640
gelit
Petro123,

При Code First подходе есть только таблички? Никакой логики на стороне БД нельзя делать?

Уже сказали).
Слово табличка вообще забудь).
Бизнес логика возле классов в АппСервере. (для веб)
26 дек 18, 15:29    [21773917]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
love_bach
Member

Откуда:
Сообщений: 681
gelit
Petro123,

При Code First подходе есть только таблички? Никакой логики на стороне БД нельзя делать?


Нет никакого "Code First" - есть средство для автоматического формирования миграций "искаробки". Оно не полноценное. Пиши в миграции руками все, что тебе надо для твоего хранилища
26 дек 18, 15:51    [21773957]     Ответить | Цитировать Сообщить модератору
 Re: Entity Framework Code First нюансы в работе  [new]
Агнец за бортом
Member

Откуда:
Сообщений: 1351
love_bach
Нет никакого "Code First"


У всех есть, а у тебя так-таки и нету? >:(
26 дек 18, 16:19    [21773984]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить