2016-04-15 5 views
1

エンティティを追跡し、CreatedAtのような列をEntity Frameworkのテーブル定義に含めた場合。Entity Frameworkデフォルト値SYSDATETIMEOFFSET

列の既定値をSystem Date Time Offsetに設定する方法はありますか。このエンティティから


EFアドオン移行コード

public class Entity 
{ 
    [Key] 
    public int Id { get; set; } 
    public DateTimeOffset CreatedAt { get; set; } 
} 

このC#のを生成します:

このSQLを生成
CreateTable(
    "dbo.Entity", 
    c => new 
     { 
      Id = c.Int(nullable: false), 
      CreatedAt = c.DateTimeOffset(nullable: false, precision: 7) 
     }) 
    .PrimaryKey(t => t.Id) 
    .Index(t => t.Id); 

CREATE TABLE [dbo].[Entity] (
    [Id] [int] NOT NULL IDENTITY, 
    [CreatedAt] [datetimeoffset](7) NOT NULL DEFAULT 
    CONSTRAINT [PK_dbo.Entity] PRIMARY KEY ([Id]) 
) 

答えて

0

Generated Migration C#をこれに変更し、生成されたSQLが正しいかどうかを確認します。

CreateTable(
    "dbo.Entity", 
    c => new 
     { 
      Id = c.Int(nullable: false), 
      CreatedAt = c.DateTimeOffset(nullable: false, precision: 7, defaultValueSql: "SYSDATETIMEOFFSET()") 
     }) 
    .PrimaryKey(t => t.Id) 
    .Index(t => t.Id);