我需要在我的模型中有一个属性来存储它的创建日期。它看起来像这样:
public class User
{
public User()
{
this.DateCreated = DateTime.Now;
}
public int Id { get; set; }
public string Name { get; set; }
public DateTime DateCreated { get; set; }
}
我的问题特别是关于在模型的构造函数中分配DateCreated属性:
public User()
{
this.DateCreated = DateTime.Now;
}
它运作正常,但我只是想知道这种方法是否正确,因为我无法找到任何相关内容。
答案 0 :(得分:0)
可以使用构造函数为实体设置默认值。只需要注意设置实体引用(例如this.Group = new Group();
),这应该是never do。
设置DateCreated
是一种特殊情况。您可能希望在实际保存对象时执行此操作,例如覆盖DbContext.SaveChanges()
。我个人的偏好甚至是通过数据库默认值/触发器来做到这一点,因此您可以独立于本地时钟和UTC日期/时间设置。
答案 1 :(得分:0)
这是完全正确的。另一种选择是将默认值添加到迁移中
AddColumn("dbo.MyTable", "MyDateTime", c => c.DateTime(nullable: false, defaultValueSql: "GETDATE()"));