我有以下用于 Entity Framework 代码优先的模型类。我想在创建数据库表时为CreateTime
设置默认值当前时间。但是,以下代码无法编译,因为
The type 'System.DateTimeOffset' cannot be declared 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;
}
最佳答案
我认为完成您需要的操作的最佳方法是重写 DbContext
中的 SaveChanges
方法。
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();
}
}
关于c# - 设置默认的 DateTimeOffset 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20452372/