Другие языки программирования и технологии

Как правильней сменить тип переменной ?

Добрый день !
В нереально огромном проекте в одном из ДатаКонтрактов у переменной тип Стринг. А в Базе это поле представляется в виде числа.
Кто то ошибся и и за много лет зарасло мхом.

Вопрос. Как правильней будет сменить тип? Найти все места использование этой переменной просто нереал. Может правильней добавить новое поле в датаконракте и как то во всех вызовах из бд сказать чтобы туда доже добавлял результат ?
Если это "нереально огромный проект", значит он уже давно существует и эта ситуация на его работу раньше не влияла. В чём именно проблема и почему она возникла именно сейчас? То что, тип поля не совпадает с типом переменной - это не проблема, а возможная причина проблемы. А в чём состоит сама проблема, которая вызвала этот вопрос?

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

2. Если поле таблицы БД должно содержать не только числа (и только в этом случае!!!) - поменять тип этого поля.

P.S. Ситуация, когда структура данных в БД не совпадает со структурой данных в программе, встречается постоянно. И для того, чтобы это не превращалось в большой геморрой, в нормально организованных проектах всю работу с хранилищами данных выносят а отдельный слой репозитория.
АС
Армат Султанов
52 919
Лучший ответ
Alim_59 Region Добавлю, что достаточно переименовать проблемное поле и высыпавшиеся ошибки однозначно покажут, где оно использовалось и использовалось ли вообще ;)
Вообще Большие проекты, особбенно криво написанные... лучше не трогать....
Или писать заного...
Солнце восходит на востоке, а садится на западе. Ты, главное ничего не трогай, сынок!

Да, ошибка есть, но программа работает. И это главное.
Правильное решение (в вашем случае - найди все использования) чаще всего самое затратное по времени. Заводить дублирующее поле без отслеживания - худший из возможных вариантов. Через достаточное количество времени для одних операций БД будет использоваться одно поле, для других другое.

Резюме - ничего не трогать и, если сейчас это не вызывает ошибки, оставить всё как есть. Ну или добавить проверку, что в строке перед выгрузкой в базу будет действительно число.
В принципе можно и оставить современные языки программирования могут корректно сами разобратся с этой ситуацией
Michael Vasilev
Michael Vasilev
8 745