Nhobernate设置默认值的问题

使用nHibernate时添加默认字段的时候可能会遇到的情况

在配置文件中在class节点中添加dynamic-insert="true" dynamic-update="true",从单词字面上理解动态插入、动态更新。作用是nhibernate在生成SQL语句的时候不会对没有改变的字段进行更新。

如果我们在插入数据的时候没有对我们要插入的变量赋值,直接调用SAVE方法的话,SQL字段中允许为NULL的字段就可以由sql赋予其默认值。因为如果不是可以为Null的话,nhibernate直接会给你个异常,告诉你有notnull字段没有初始化。

 

但如果有个表,某个字段我们就用registerDtae 用记录注册日期其中一个字段  默认的值通过sql的getdate()获得系统日期的话

运行时会直接跳异常,也就是上面所说的动态插入不起作用了。

C#创建datetime的时候datetime的默认值为0001-01-01 0:00:00,运行sql语句也直接报错,这时解决这个问题可以在property节点的insert="false" 和update="false"以后nHibernate在对这张表进行插入和更新的时候再也不会管这个字段了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值