views:

6

answers:

1

Our database has all times stored as UTC, and we know the user's current timezone, so want to return it relative to that. So we want to incorporate the offset in a LINQ projection as so:

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)
            };

Of course, Linq2EF cannot convert "AddHours" into a canonical function. Is there another way to do this?

UPDATE:

Another thought, if the timezone offset was stored in the database as another column, would there be a way to have the DB perform the calculation (date + offset)?

A: 

The quick and dirty way to do this is to convert to a list, and just linq to object to get it done:

from u in this.Context.Users.ToList()
select new { ... }
James Connell