NHibernate的+默认GETDATE()柱(NHibernate + default getd

2019-07-30 09:29发布

如何配置NHibernate的创建与这样的列中的DB模式:

create_dt datetime not null default getdate()

我有这样的映射文件:

<property name="create_dt" update="false" insert="false" generated="insert" not-null="true" />

反正我有可以注入SQL服务器的特定default getdate() 对于文档生成的属性甚至提到这是你如何处理CREATE_DATE场。 我只是不知道如何让我的数据库架构生成正确。 我将不得不编辑手动创建表脚本?

类似的问题 。

编辑 :我想通了,我可以随时更改表模式,如下所示:

<database-object>
    <create>ALTER TABLE Report ADD CONSTRAINT DF_report_create_dt DEFAULT getdate() FOR create_dt;</create>
    <drop></drop>
  </database-object>

我可以以同样的方式添加触发器的update_dt类型的字段。 这似乎不是提供()使用GETDATE明确的INSERT和UPDATE语句更好。

Answer 1:

我送花儿给人更喜欢使用NHibernate的事件系统设置像创建日期或更新日期我的审计特性。 (见事件系统文件在这里 )。

我喜欢这种做法,因为它使逻辑从我的数据库层,而且它给了我在我的代码,负责设置这些值有一个单一位置的能力。 如果我有我的所有实体公共基类,那么我甚至可以保证在我的领域一致的行为。



Answer 2:

这是在不改变它的休眠线程的答案...它应该在端口来NHibernate的...

https://forum.hibernate.org/viewtopic.php?f=25&t=996901&view=previous

请参阅最后发表的帖子。

如果做不到这一点,我总是产生在类的构造函数对象的“创建日期”:

public class MyClass
{
    private DateTime createdDate;

    public MyClass()
    {
        createdDate = DateTime.Now;
    }
}


文章来源: NHibernate + default getdate() column