Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以让NHibernate强制字符串属性为非空吗?_Nhibernate - Fatal编程技术网

我可以让NHibernate强制字符串属性为非空吗?

我可以让NHibernate强制字符串属性为非空吗?,nhibernate,Nhibernate,我知道notnull属性。是否有一个用于强制执行字符串属性的最小长度?我不希望数据库中出现空字符串。我不知道映射文件中有什么东西可以让您这样做(在模式中我也看不到任何东西)。您可能可以使用NHibernate.IUserType定义一个自定义类型,并将逻辑构建到该类型中(如果字符串为空,则保存null)。构建IUserType的过程(很容易更改此示例代码以适合您) 另一个选项是在将实体保存到数据库之前利用并处理验证逻辑。您正在寻找的!有一篇博文展示了它的一些优点。这里有我的问题(),解释我为什么

我知道
notnull
属性。是否有一个用于强制执行字符串属性的最小长度?我不希望数据库中出现空字符串。

我不知道映射文件中有什么东西可以让您这样做(在模式中我也看不到任何东西)。您可能可以使用NHibernate.IUserType定义一个自定义类型,并将逻辑构建到该类型中(如果字符串为空,则保存null)。构建IUserType的过程(很容易更改此示例代码以适合您)


另一个选项是在将实体保存到数据库之前利用并处理验证逻辑。

您正在寻找的!有一篇博文展示了它的一些优点。

这里有我的问题(),解释我为什么还没有使用它!说真的,我会查一查的。啊,我明白了!但是,检查和建设各自的项目绝对是值得的努力!哦,是的,还有James关于编写IUserType的建议——当您需要验证时,请不要这样做!当然,您可以确定永远不会在数据库中保存空字符串,但是如何处理错误呢?NHibernate验证器还为您提供了验证其他东西的能力,从长远来看,这可能是有益的!