1. ホーム
  2. c#

[解決済み] Entity Framework Code First Dateフィールドの作成

2023-03-14 17:53:01

質問

私はデータベーステーブルを作成するためにEntity Frameworkのコードファーストメソッドを使用しています。次のコード を作成します。 DATETIME カラムが作成されますが、私は DATE カラムを作成する必要があります。

[DataType(DataType.Date)]
[DisplayFormatAttribute(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime ReportDate { get; set; }

型のカラムを作成するにはどうしたらよいでしょうか。 DATE を作成することはできますか?

どのように解決するのですか?

David Roth氏の回答のEF6バージョンは以下の通りです。

public class DataTypePropertyAttributeConvention 
    : PrimitivePropertyAttributeConfigurationConvention<DataTypeAttribute>
{
    public override void Apply(ConventionPrimitivePropertyConfiguration configuration, 
        DataTypeAttribute attribute)
    {
        if (attribute.DataType == DataType.Date)
        {
            configuration.HasColumnType("Date");
        }
    }
}

前回と同様に登録します。

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
     base.OnModelCreating(modelBuilder);

     modelBuilder.Conventions.Add(new DataTypePropertyAttributeConvention());
}

これはTyler Durdenのアプローチと同じ結果をもたらしますが、この仕事のためにEFのベースクラスを使っている点が異なります。