有谁知道我可以如何通过映射列的默认值来设置,例如,当我从映射生成数据库时,我会让 DateTime 列将 getdate() 作为默认值?
到目前为止我试过这个(看起来完全像我需要的)但它不起作用
this.Map(x => x.LastPersistedOn, "DateModified")
.Access.Property()
.Default("getdate()");
有谁知道我可以如何通过映射列的默认值来设置,例如,当我从映射生成数据库时,我会让 DateTime 列将 getdate() 作为默认值?
到目前为止我试过这个(看起来完全像我需要的)但它不起作用
this.Map(x => x.LastPersistedOn, "DateModified")
.Access.Property()
.Default("getdate()");
我只是尝试设置一些默认值,它按预期工作。我正在使用 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
)
--
多姆
这样做的方法是在代码中分配当前的 DateTime,而不是使用数据库中的默认值。然后将其视为普通列。起初我来自模型驱动的设计背景,这对我来说似乎有点奇怪,但在 POCO 级别管理默认值是 DDD 的方法。
听听别人的意见也不错