NHibernate如何处理非空字段的空值?
我使用的是NHibernate,我对NHibernate如何处理非空字段的空值有些怀疑。我假设NHibernate在创建实体时会抛出异常,但我发现一些证据表明它会将字段设置为该类型的默认值NHibernate如何处理非空字段的空值?,nhibernate,Nhibernate,我使用的是NHibernate,我对NHibernate如何处理非空字段的空值有些怀疑。我假设NHibernate在创建实体时会抛出异常,但我发现一些证据表明它会将字段设置为该类型的默认值 哪个是正确的?根据我的经验,它通常会指定一个默认值 如果您有一个具有DateTine属性的实体,并且您没有为其分配任何内容,那么它将分配一个默认日期,通常是数据库可以处理的最早日期 如果您有一个具有Enum属性的实体,它可以简单地分配Enum的第一个值(例如,Enum{Off=0,On=1},默认情况下为0
哪个是正确的?根据我的经验,它通常会指定一个默认值
- 如果您有一个具有DateTine属性的实体,并且您没有为其分配任何内容,那么它将分配一个默认日期,通常是数据库可以处理的最早日期
- 如果您有一个具有Enum属性的实体,它可以简单地分配Enum的第一个值(例如,Enum{Off=0,On=1},默认情况下为0)
- 数字类型当然会得到一个0值
这就是我在应用程序中发现的行为。有人可能会以某种方式让它抛出异常,但我个人不需要它。是的,我刚刚做了一个测试项目,我可以确认它就是这样工作的。现在,如果有人能告诉我如何改变这种行为,我会非常高兴!您可以使用NHibernate验证器强制执行您想要的任何规则: