我正在使用EF 5 Code Fist并使用流畅的API指定一些自定义对象到表映射。像这样的Smth:
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()');
这可能吗?有什么想法?
答案 0 :(得分:0)
简短的回答是:不,没有API(但是?)在代码优先设置默认值。
更长的答案是:不。第二好(但远远落后)是使用数据库初始化程序将DDL查询发送到数据库:
protected override void Seed(DbContext context)
{
context.Database.ExecuteSqlCommand(
"ALTER TABLE [T70_AccountService] ADD DEFAULT (getutcdate()) FOR [Created]");
}
答案 1 :(得分:0)
好消息,代码首先支持这一点。在生成的迁移的“Up()”方法中,使用以下语法指定默认值:
AddColumn("[table name]", "[column name]", c => c.Boolean(nullable: false, defaultValue: false));