是否可以将NHibernate设置为不';是否插入空字段?

是否可以将NHibernate设置为不';是否插入空字段?,nhibernate,Nhibernate,目前还不能完全确定这一点,但当我们在NHibernate上保存一个实体,其中包含一个字段值为NULL的列,该列不是NULL(但有一个默认值),操作将失败 我们通过抛出一个INSERT语句来尝试相同的模式,完全省略NOTNULL字段(而不是显式地将其声明为NULL),结果成功了 这使我们相信NHibernate正在以这样一种方式设置SQL语句,即NOTNULL字段被显式声明为NULL,从而导致INSERT错误 如果该字段为空,是否有办法使NHibernate在SQL语句中省略该字段?值得一提的是,

目前还不能完全确定这一点,但当我们在NHibernate上保存一个实体,其中包含一个字段值为NULL的列,该列不是NULL(但有一个默认值),操作将失败

我们通过抛出一个INSERT语句来尝试相同的模式,完全省略NOTNULL字段(而不是显式地将其声明为NULL),结果成功了

这使我们相信NHibernate正在以这样一种方式设置SQL语句,即NOTNULL字段被显式声明为NULL,从而导致INSERT错误


如果该字段为空,是否有办法使NHibernate在SQL语句中省略该字段?值得一提的是,它是一个字符串字段,用于非空列,默认值为(“”)。

您可以在类元素上使用dynamic insert属性(请参阅)。或者,如果您使用的是FluentNHibernate,那么在设置映射时可以调用一个名为DynamicInsert(iirc)的方法


仅供参考,动态更新也有一个相应的属性和Fluent函数。

我应该提到DynamicInsert/Update对性能有影响。也就是说,它为您试图保存的每个以这种方式标记的对象重新生成(通常是复杂的)SQL文本。谢天谢地,我们正在处理相当简单的实体,所以它的性能不会太高。至少希望如此。:)