2016-05-16 53 views

回答

0

首先,请不要将代码作为图像发布。您的问题本身应该包含所有相关的文字代码。

这就是说,这里没有什么特别的。如果你想在你的控制器在保存之前设置一个属性来DateTime.Now,你只是做

foo.CreatedDate = DateTime.Now; 
db.Foos.Add(foo); 
db.SaveChanges(); 

但是,它的更好,如果你要与任何频率要做到这一点,实际使用自定义getter和setter你的财产,以自动处理这个问题:

private DateTime? createdDate; 
public DateTime CreatedDate 
{ 
    get { return createdDate ?? DateTime.Now; } 
    set { createdDate = value; } 
} 

这样一来,如果属性尚未明确设置,它会自动返回DateTime.Now。它被设置后,它将返回任何设置。

最后,您应该避免DateTime.Now。这个值是当地的服务器时间,并且与任何东西都没有关系。如果您曾在不同时区的服务器上共同定位您的站点,那么数据库中的值很快就会变得毫无意义。您应该始终使用DateTime.UtcNow,它以UTC返回当前日期和时间,无论本地服务器时间如何,该日期和时间都将始终保持不变。或者,如果您坚持存储本地时间,请使用DateTimeOffset.Now,这样您至少可以使用时区组件。