我有实体框架代码优先的以下模型类。我想在创建数据库表时为CreateTime
设置默认值当前时间。但是,无法编译以下代码,因为
类型'System.DateTimeOffset'不能声明为const
这是为DateTimeOffset
设置默认值的更好方法吗?
public class MyClass
{
public int Id { get; set; }
public string Title { get; set; }
[DefaultValue(now)]
public DateTimeOffset CreateTime
{
get { return _createTime; }
set { _createTime = value; }
}
private const DateTimeOffset now = DateTimeOffset.Now;
private DateTimeOffset _createTime = now;
}
答案 0 :(得分:2)
我认为执行所需操作的最佳方式是覆盖SaveChanges
中的DbContext
方法。
public class MyDbContext : DbContext
{
public override int SaveChanges()
{
foreach (var entry in this.ChangeTracker.Entries<MyClass>().Where(x => x.State == EntityState.Added))
{
entry.Entity.CreateTime = DateTimeOffset.Now;
}
return base.SaveChanges();
}
}