gpt4 book ai didi

c# - 设置默认的 DateTimeOffset 值?

转载 作者:太空宇宙 更新时间:2023-11-03 10:53:24 25 4
gpt4 key购买 nike

我有以下 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com