FluentNHibernate - 为DB列设置默认值(SQL服务器)(FluentNHiber

2019-08-18 07:55发布

没有人知道的方式我怎么可能通过映射列的默认值设定为如此例如,当我从映射生成DB我会日期时间为列GETDATE()为默认值?

我想到目前为止,这(看起来像exactlly什么,我需要),但它不工作

this.Map(x => x.LastPersistedOn, "DateModified") 
    .Access.Property() 
    .Default("getdate()"); 

Answer 1:

我只是想设置一些默认值和它的工作如预期。 我使用流利从Git的检索24.05.2010所以更新您的副本可能会解决你的问题。
制图

public class SampleEntity
{
    public virtual DateTime DateTimeProperty { get; set; }
}

 public class SampleEntityMap
        : ClassMap<SampleEntity>
{
   public SampleEntityMap()
   {
    Map(x => x.DateTimeProperty, "DateTimeColumn")
             .Access.Property()  //actually not necessary 
             .Not.Nullable()
             .Default("getDate()");
   }
}

这将产生以下SQL(从输出到控制台)

create table SampleEntity(
   DateTimeColumn DATETIME default  getDate()  not null
  )

-
他们



Answer 2:

要做到这一点的方法是在指定的代码当前日期时间,而不是在数据库中使用默认值。 然后把它作为一个正常的列。 显得有点从模型驱动设计背景第一次来,但在POCO级别管理默认值奇怪,我是DDD的方式来做到这一点。

将是很好听别人的意见太



文章来源: FluentNHibernate - Setting default value for DB columns (SQL Server)