我有一个从数据库中提取数据的Linq to Entities查询。其中一个字段是时区偏移量。我试图找出如何根据服务器的当前时间将该偏移转换为实时。目的是在网页上显示联系的实际时间。
from c in Contacts
.Where(a => a.LastName.Contains("Anderson"))
select new
{
Id = c.Id,
Surname= c.LastName,
TheirTime = c.TimeZoneOffset
}
对于此示例,c.TimeZoneOffset将是UTC(即美国中部时区)的-6。我想要的是像DateTime.UTCOffset(-6),但如果可能的话,它需要成为查询的一部分。
答案 0 :(得分:1)
您可以使用 DbFunctions 。
using System.Data.Entity; //namespace
from c in Contacts.Where(a => a.LastName.Contains("Anderson"))
select new
{
Id = c.Id,
Surname= c.LastName,
TheirTime = c.TimeZoneOffset,
CalculatedTime = DbFunctions.AddMinutes(c.SavedUtcTime,x.UtcOffsetInMinutes)
}
这假设您在模型中具有“SavedUtcTime”和“UtcOffsetInMinutes”属性。
希望这会有所帮助。