Где наиболее удобное место для проверки длины свойства сохраняемого объекта? - PullRequest
2 голосов
/ 17 июля 2011

Интересно, где наиболее удобное место для проверки длины свойства постоянного объекта.

Допустим, в моей базе данных есть таблица Country с именем CountryCode nvarvhar (3).

И у меня есть сопоставленный объект Country со свойством CountryCode, который можно сохранить в Db.

Где я должен проверить, не превышает ли код страны, заданный пользователем, 3 символа:

  • В установщике свойства CountryCode
  • ИЛИ во время сохранения в Db

Можете ли вы, пожалуйста, совет?

Спасибо

Ответы [ 2 ]

1 голос
/ 17 июля 2011

Я обнаружил, что проще всего позволить свойствам установить любое значение (в любом случае правильного типа данных), а затем проверить его перед сохранением.

Мне нравится использовать встроенные атрибуты проверкив .Net.Это сохраняет логику, связанную со свойством.Существует класс StringLengthAttribute , который должен выполнить то, о чем вы просите.

Атрибуты находятся в пространстве имен System.ComponentModel.DataAnnotations (вам необходимо обратиться к сборкето же имя).

MVC и EntityFramework имеют встроенный способ проверки данных.Если вам нужно выполнить логику самостоятельно, вот код, который может помочь вам начать ...

var ctx = new ValidationContext(obj, null, null);
Validator.ValidateObject(obj, ctx);
1 голос
/ 17 июля 2011

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

...