2016-05-16 48 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,這樣您至少可以使用時區組件。