Есть ли способ обеспечить минимальную длину строки с NHibernate? - PullRequest
2 голосов
/ 26 октября 2010

У меня есть строковое свойство для объекта, которое я хотел бы пометить как требуется. Например,

public class Product
{
    public virtual string Name { get; set; }
}

В своих сопоставлениях я могу объявить Name как требуется (используя Fluent NHibernate):

mapping.Map(x => x.Name).Required();

Однако это только ограничивает строку от null. Если я назначу его String.Empty, NHibernate с радостью сохранит значение "" в базе данных.

У меня вопрос, есть ли способ принудительного применения минимальной длины для строк? Например, в этом случае название продукта должно содержать не менее 3 символов. Или моя бизнес-логика должна обрабатывать это вместо NHibernate?

Ответы [ 3 ]

1 голос
/ 27 октября 2010

Это не ответственность (Свободно) NHibernate, это ответственность библиотеки валидации.Например, проверьте NHibernate Validator .

1 голос
/ 27 октября 2010

Использование валидатора NHibernate :

public class Product
{
    [Length(Min=3,Max=255,Message="Oh noes!")]
    public virtual string Name { get; set; }
}
1 голос
/ 26 октября 2010

Я считаю, что вы можете обеспечить максимальную длину и обнуляемость только с NHibernate (с или без Fluent).

Минимальная длина может быть применена с помощью пользовательской аннотации данных в вашей модели (или ViewModel, если вы используете MVC ине хотите раздувать модель вашего домена с атрибутами)

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