Entity framework Sql Server 2008 R2中的Sysutcdatetime是否已弃用?
我开发了一个Asp.net应用程序,它使用实体框架连接到Sql Server 2008(而不是R2)数据库。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
客户端针对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