我們的數據庫中的所有時間都存儲爲UTC,並且我們知道用戶當前的時區,因此想要將其返回。因此,我們要納入一個LINQ投影偏移量爲這樣:Linq2EF:帶時區偏移量的返回日期時間
var users = from u in this.Context.Users
select new UserWithCorrectedDate
{
Id = u.Id,
FirstName = u.FirstName,
LastName = u.LastName,
RegistrationDate = u.RegistrationDate.Value.AddHours(-5)
};
當然,Linq2EF不能轉換「AddHours
」爲規範功能。有沒有另一種方法來做到這一點?
UPDATE:
另一個想法,如果時區偏移被存儲在數據庫中作爲另一列中,會有一個辦法有DB執行計算(日期+偏移)?
查詢的結果集大小是多少?只是在內存中執行它 – Nix 2010-09-29 18:28:14
它是5000個用戶,但只顯示10個,所以我不想使用ToList()。實際上,在此步驟之後,過濾器將應用於查詢,因此不會將其轉換爲對象。 – CodeGrue 2010-09-30 12:00:43