2010-10-26 2 views
2

У меня есть свойство string для объекта, который я хотел бы отметить по мере необходимости. Например,Есть ли способ обеспечить минимальную длину строки с помощью NHibernate?

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

В моих отображений, я могу объявить Name по мере необходимости (с помощью Fluent NHibernate):

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

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

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

ответ

1

Работа со NHibernate validator:

public class Product 
{ 
    [Length(Min=3,Max=255,Message="Oh noes!")] 
    public virtual string Name { get; set; } 
} 
+0

Помечено в качестве ответа на 'О NoEs'! :). –

1

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

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

1

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

Смежные вопросы