FluentNHibernate - DBカラム(SQL Server)のためにデフォルト値を設定します
-
21-09-2019 - |
質問
誰もが、私は、例えばのためになるよう、列のデフォルト値をマッピングして設定することができますどのような方法を知っています私はマッピングからDBを生成するとき、私はデフォルト値としてのDateTime列持つGETDATE()を持っているでしょうか?
私はこれまでのところ、この(exactlly私は必要なもののように見える)を試みたが、それは
動作しません。this.Map(x => x.LastPersistedOn, "DateModified")
.Access.Property()
.Default("getdate()");
解決
私はいくつかのデフォルト値を設定しようと、期待どおりに働きました。私はあなたの問題を解決することがあり、あなたのコピーを更新してGitの2010年5月24日から取り出すと流暢を使用しています。
マッピング
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の方法がある。
あまりにも他人の意見を聞くために良いでしょう。
所属していません StackOverflow