在 NHibernate 映射中为未使用的列提供默认默认值

Posted

技术标签:

【中文标题】在 NHibernate 映射中为未使用的列提供默认默认值【英文标题】:Supply default default value in NHibernate mapping for unused columns 【发布时间】:2010-12-01 21:34:52 【问题描述】:

我的域对象不使用数据库表中的 2 个不可为空的列。这两列都是指南。有没有办法可以在映射文件中为这些列提供默认值,以便我能够将域对象保存回数据库?

【问题讨论】:

【参考方案1】:

你有几个选择:

在 hbm.xml 文件中提供您自己的 。不幸的是,这迫使您控制所有插入逻辑。 在创建新实例时将列映射到对象中未公开的私有字段并设置 guid。 NHibernate 然后可以在插入时将这些字段保存回来。您还可以将映射标记为 update="false",以便它们只被插入。 为数据库架构中的这些列添加默认值。

【讨论】:

另一种选择是使用事件监听器。我这样做是为了诸如 datecreated/dateupdated 之类的。这将封装应用默认值的逻辑,并允许您通过让它们实现一个公共接口来在多个实体之间共享它。

以上是关于在 NHibernate 映射中为未使用的列提供默认默认值的主要内容,如果未能解决你的问题,请参考以下文章

Fluent Nhibernate将集合映射到通用实体

流利的 NHibernate 多对多与额外的列不插入

是否可以在 nHibernate 中设置一个属性而不是映射到表中的列,而该类的其他属性可以

Nhibernate 中的父子映射

如何在 AngularJS 中为未定义的表达式值显示占位符?

React.useContext 显示为未定义