可以设置NHibernate,以便它不插入NULL字段吗?

时间:2010-10-11 20:33:24

标签: nhibernate

还不完全确定这一点,但是当我们在NHibernate上保存一个实体时,该实体包含一个非NULL的列的字段值为NULL(但是具有DEFAULT值),操作失败。

我们通过在其上抛出INSERT语句尝试了相同的模式,完全省略了NOT NULL字段(而不是明确地将其声明为NULL),并且这很有用。

这让我们相信NHibernate正在设置SQL语句,使NOT NULL字段显式声明为NULL,这会导致INSERT错误。

如果它是NULL,有没有办法让NHibernate从SQL语句中省略这个字段?对于它的价值,它是带有DEFAULT('')的NOT NULL列的字符串字段。

1 个答案:

答案 0 :(得分:2)

您可以在class元素上使用dynamic-insert属性(请参阅5.1.3. Class)。或者,如果您使用的是FluentNHibernate,则可以在设置映射时调用名为DynamicInsert(iirc)的方法。

仅供参考,动态更新也有相应的属性和Fluent功能。