Здравствуйте, ·, Вы писали: ·>Скажем, как при наличии linq переименовать колонку в таблице или поменять тип? Как вообще поддерживать миграцию бд?
Вы, конечно же, хотели спросить "как при отсутствии linq переименовать колонку в таблице или поменять тип".
Потому что с linq как раз всё тривиально. Вот переименовали мы Orders.Id в Orders.OrderID — поправили это в одном месте модели.
Рефакторинг автоматически найдёт нам все 7 миллионов linq-запросов, где мы обращаемся к Orders.Id. Независимо от формы обращения — ну там типа from orders o where o.id = orderID. И переименует всё как надо.
А с текстовым SQL придётся каждую SQL-строку вычитывать глазами, потому что orders.id там от product.id или orderline.id никаким грепом не отличишь.
И даже после вычитывания остаётся только молиться, что за углом не притаился код склейки строк, который дописывает напалм типа "top " + string(pageSize)+ sql + " AND ID > @lastID order by ID desc"
Ну да, тесты вас конечно же "спасут". В том смысле, что после этого переименования упадёт 6 миллионов тест кейзов, и вы проведёте прекрасные выходные в офисе, разгребая все эти простыни unexpected syntax near id).
Уйдемте отсюда, Румата! У вас слишком богатые погреба.