2

私は EF 5 Code Fist を使用しており、流暢な API を使用してカスタム オブジェクトからテーブルへのマッピングを指定しています。次のようにします。

protected override void OnModelCreating(DbModelBuilder modelBuilder)
  {
   //Account Service
   modelBuilder.Entity<ACCOUNT>().ToTable("ACCOUNT", "T70_AccountService");
    ...
   modelBuilder.Entity<ACCOUNT>()
     .Property(p => p.Created).HasColumnType("DateTime")
     .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed);

私ができるようにしたいのは、追加できる拡張機能を追加することです

 .HasDefaultValue('(getdateutc()');

それは可能ですか?どのようにアイデアはありますか?

4

2 に答える 2

0

朗報です。Code First がこれをサポートするようになりました。生成された移行の「Up()」メソッドで、次の構文でデフォルトを指定します。

AddColumn("[table name]", "[column name]", c => c.Boolean(nullable: false, defaultValue: false));
于 2014-02-11T20:45:39.350 に答える
0

簡単に言えば、いいえ、コード ファーストでデフォルト値を設定するための API は (まだ?) ありません。

より長い答えは次のとおりです。いいえ。2 番目に良い方法 (ただしはるかに遅れています) は、データベース初期化子を使用して DDL クエリをデータベースに送信することです。

protected override void Seed(DbContext context)
{
    context.Database.ExecuteSqlCommand(
        "ALTER TABLE [T70_AccountService] ADD DEFAULT (getutcdate()) FOR [Created]");
}
于 2012-11-08T21:08:32.170 に答える