6

有谁知道我可以如何通过映射列的默认值来设置,例如,当我从映射生成数据库时,我会让 DateTime 列将 getdate() 作为默认值?

到目前为止我试过这个(看起来完全像我需要的)但它不起作用

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

2 回答 2

6

我只是尝试设置一些默认值,它按预期工作。我正在使用 Fluent 作为从 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
  )

--
多姆

于 2010-06-04T21:44:41.950 回答
4

这样做的方法是在代码中分配当前的 DateTime,而不是使用数据库中的默认值。然后将其视为普通列。起初我来自模型驱动的设计背景,这对我来说似乎有点奇怪,但在 POCO 级别管理默认值是 DDD 的方法。

听听别人的意见也不错

于 2010-03-23T22:44:26.227 回答