Entity framework Sql Server 2008 R2中的Sysutcdatetime是否已弃用?

Entity framework Sql Server 2008 R2中的Sysutcdatetime是否已弃用?,entity-framework,sql-server-2008,sql-server-2008-r2,Entity Framework,Sql Server 2008,Sql Server 2008 R2,我开发了一个Asp.net应用程序,它使用实体框架连接到Sql Server 2008(而不是R2)数据库。 客户端针对Sql server 2008R2数据库运行db脚本,并成功执行该脚本。 执行应用程序时会引发异常: “Sysutcdatetime”未被识别为内置函数。 在检查堆栈跟踪之后,似乎在执行LINQ to Entity framework语句时引发了异常。声明是这样的: var item = Entities.News.FirstOrDefault(n => n.Expira

我开发了一个Asp.net应用程序,它使用实体框架连接到Sql Server 2008(而不是R2)数据库。
客户端针对Sql server 2008R2数据库运行db脚本,并成功执行该脚本。
执行应用程序时会引发异常:
“Sysutcdatetime”未被识别为内置函数。
在检查堆栈跟踪之后,似乎在执行LINQ to Entity framework语句时引发了异常。声明是这样的:

var item = Entities.News.FirstOrDefault(n => n.ExpirationDate > DateTime.UtcNow);
据我所知,Entity framework生成的sql语句使用函数Sysutcdatetime获取当前UTC日期和时间。
我知道解决方案之一是将日期存储在变量中,然后将其传递给lambda表达式,这样UTC日期和时间将在应用程序级别确定,并在生成的sql语句中硬编码

var currentUtcDate = DateTime.UtcNow;
var item = Entities.News.FirstOrDefault(n => n.ExpirationDate > currentUtcDate);
但我很好奇为什么Sysutcdatetime函数存在于Sql server 2008中而不存在于Sql server 2008 R2中

select Sysutcdatetime()
select @@VERSION
只是在我的SQL Server上运行了它,并得到了这些结果

2010-07-14 19:36:40.5738642

Microsoft SQL Server 2008 R2(RTM)- 10.50.1600.1(英特尔X86)2010年4月2日15:53:02版权所有(c)微软 公司开发者版 Windows NT 5.1(内部版本2600: 服务包3)

据我所知,SQL Server 2008 R2上仍然存在Sysutcdatetime
  • 不在
  • 想法:

    • 什么是数据库兼容性级别
    • 您是100%使用SQL Server 2008 R2还是SQL Server 2008

    我在系统函数->日期和时间函数上使用Sql server management studio进行了检查,但它不存在。我现在没有使用sql语句再次检查的权限。不确定数据库兼容性级别,但我非常确定当您有机会运行@版本并查看时,它是sql server 2008 R20