有没有人知道如何通过映射列的默认值来设置,例如当我从映射生成DB时,我会将DateTime列的getdate()作为默认值吗?
我到目前为止尝试了这个(看起来完全像我需要的那样)但它不起作用
this.Map(x => x.LastPersistedOn, "DateModified")
.Access.Property()
.Default("getdate()");
答案 0 :(得分:6)
我刚尝试设置一些默认值,它按预期工作。我在24.05.2010使用Fluent作为Git检索,所以更新你的副本可以解决你的问题 映射
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
)
-
DOM
答案 1 :(得分:4)
执行此操作的方法是在代码中分配当前DateTime,而不是在数据库中使用默认值。然后将其视为普通列。我最初从模型驱动的设计背景看起来有点奇怪,但在POCO级别管理默认值是DDD的方法。
也很高兴听到别人的意见