2010-10-26 84 views
2

我有一個實體的字符串屬性,我想根據需要標記。例如,有沒有辦法強制NHibernate的最小字符串長度?

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

在我的映射,我可以爲(使用功能NHibernate)需要申報Name

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

標記爲答案哦''不一:)! – 2010-10-28 02:15:39

1

我相信你只能強制使用NHibernate(有或沒有Fluent)的最大長度和可空性。

的最小長度可以用自定義DataAnnotation在你的模型被強制執行(或視圖模型,如果你使用MVC和不想臃腫帶屬性的域模型)

1

這不是責任(流利) NHibernate,它是驗證庫的責任。例如,檢查出NHibernate Validator

相關問題