Entity Framework Code First Date field creation

后端 未结 8 2288
情歌与酒
情歌与酒 2020-11-30 23:13

I am using Entity Framework Code First method to create my database table. The following code creates a DATETIME column in the database, but I want to create a

8条回答
  •  半阙折子戏
    2020-11-30 23:50

    Beside using ColumnAttribute you can also create a custom attribute convention for the DataTypeAttribute:

    public class DataTypePropertyAttributeConvention : AttributeConfigurationConvention
    {
        public override void Apply(PropertyInfo memberInfo, PrimitivePropertyConfiguration configuration, DataTypeAttribute attribute)
        {
            if (attribute.DataType == DataType.Date)
            {
                configuration.ColumnType = "Date";
            }
        }
    }
    

    Just register the convention in your OnModelCreating method:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
         base.OnModelCreating(modelBuilder);
    
         modelBuilder.Conventions.Add(new DataTypePropertyAttributeConvention());
    }
    

提交回复
热议问题