Изменение базы с Linq2Sql или Entity Framework
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 23.03.17 19:37
Оценка:
Есть группа сервисов, работающих с одной и той же базой. Доступ к базе идёт через Linq2Sql и через Entity Framework (разные сервисы, написанные в разное время и разными командами). Со всем этим зоопарком всплывает одна общая проблема — при любом изменении схемы базы данных все эти фреймворки отваливаются.
Я сейчас хочу привести всё это в порядок, унифицировать доступ к базе и, среди прочего, мне нужно предложить какое-то нормальное решение для изменений схемы данных. "Нормальным" в моём понимании будет решение, которое позволит изменять структуру таблиц так, чтоб сервисы, работающие с этими таблицами, не отваливались.
Со стороны самой базы данных всё более-менее понятно — если мы удаляем столбец, то естественно всё развалится. Поэтому удалять столбцы мы будем только после того как столбец удалён из всех linq2sql / EF маппингов. Тут другое. Как сделать чтобы при добавлении столбцов оно не вываливалось с эксепшном о несовпадении схемы?

У меня есть кое-какие мысли о перенаправлении запросов чтения на View вместо самих таблиц, но тогда придётся поддерживать какую-то версионность этих view.. Да и вопрос со вставкой данных остаётся. Другой мысль — обернуть всё в хранимые процедуры, но тогда нужна будет версионность этих процедур..

Мне думается, что этой задачей люди занимались ещё много лет назад и наверняка есть какие-то готовые решения и рекоммендации для Entity Framework или Linq2Sql чтобы избегать таких эксепшнов.
Подскажите, куда стоит копнуть?..
С уважением, Artem Korneev.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.