在Linq查询中执行时间计算

时间:2014-10-09 22:26:25

标签: c# linq asp.net-mvc-4

我有一个从数据库中提取数据的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),但如果可能的话,它需要成为查询的一部分。

1 个答案:

答案 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”属性。

希望这会有所帮助。