C# 在进行比较之前,在实体框架中将UTC时间更改为本地时间

C# 在进行比较之前,在实体框架中将UTC时间更改为本地时间,c#,entity-framework,C#,Entity Framework,我有一个应用程序,其中使用实体框架数据库优先方法,并且我必须比较查询中的日期 在与startDate和endDate进行比较之前,我想将TimestampUTC(一个数据库字段)更改为本地时间 是否可以在下面的查询中以某种方式更改x.TimestamdUTC 使用(var db=newtestentities()) { 整数记录; DateTime startDate=DateTime.Now.AddDays(-90).Date; DateTime endDate=DateTime.Now.Ad

我有一个应用程序,其中使用实体框架数据库优先方法,并且我必须比较查询中的日期

在与startDate和endDate进行比较之前,我想将TimestampUTC(一个数据库字段)更改为本地时间

是否可以在下面的查询中以某种方式更改x.TimestamdUTC

使用(var db=newtestentities())
{
整数记录;
DateTime startDate=DateTime.Now.AddDays(-90).Date;
DateTime endDate=DateTime.Now.AddDays(-1).Date;

numberOfRecords=db.Logs.Where(x=>x.TimestampUTC>=startDate&&x.TimestampUTC您可以使用
DateTime.ToLocalTime()
方法返回给定DateTime实例的本地时间表示形式。因此,您的查询如下所示:


numberOfRecords=db.Logs.Where(x=>x.TimestampUTC.ToLocaTime()>=startDate&&x.TimestampUTC x.TimestampUTC>=startDate&&x.TimestampUTC使用
DateTime.UtcNow
,因此
startDate
endDate
也是比较的UTC。您不能将本地日期更改为TimestampUTC吗?您不应该将时间
x.TimestampUTC
更改为本地时间。您应该更改
startDate
endDate
转换为UTC进行比较。将x.TimestampUTC转换为本地时间将使查询效率低下且非常昂贵。DB服务器甚至可能不在这些列上使用索引。您是否曾在@Simant使用过此功能?