С риском не ответить на вопрос вообще ...
Похоже, у вас есть бизнес-правило, которое гласит: «это конкретное поле должно содержать не более N символов».
Я бы сказал, что как размер столбца базы данных, так и максимальная длина текстового поля являются отдельными следствиями этого бизнес-правила. Исправление одного из другого путает корреляцию с причинностью.
Кроме того, применение этого бизнес-правила путем проверки максимальной длины столбца базы данных имеет и другие последствия:
вы будете обращаться к базе данных каждый раз за то, что в противном случае могло бы быть операцией проверки в памяти;
если ваше бизнес-правило изменяется незначительно (например, N переходит от 100 до 80 символов), то вам нужно изменение на уровне схемы;
некоторые базы данных, работающие с кодировкой символов переменной длины, такие как UTF8, только нечетко определяют, сколько символов даже помещается в данный столбец;
в более широком смысле вы связываете бизнес-правило с артефактом реализации - что если вы позже решите использовать объектную базу данных?
Я не предлагаю, чтобы вы не определяли размер столбцов базы данных (вы должны это делать), а лишь отделяли бизнес-правило от реализации базы данных. Если вам удастся выполнить простую проверку фиксированной длины в коде приложения, я бы предложил это.
Редактировать прочитав ваш вопрос немного более внимательно, для максимальной длины текстового поля вам нужно N перед проверкой. Тем не менее, это все еще бизнес-правило - вы можете написать атрибут MaximumLength
для ваших полевых аксессоров и опросить его?