Hangfire合并命令错误

时间:2014-11-17 18:04:04

标签: sql sql-server sql-server-2005 hangfire

我正在尝试使用没有datetime2数据类型的SQL Server 2005来运行Hangfire,所以我发现this discussion非常有帮助。这解决了一个问题,但它开了另一个。现在我收到了错误:

  

找不到SqlMapper.cs。类型例外   ' System.Data.SqlClient.SqlException'发生在System.Data.dll但是   未在用户代码中处理。 ' merge'附近的语法不正确。

我在GitHub上找到了SqlMapper.cs的源代码。 Dapper.1.38包是我添加到项目中的包。即便如此,我收到的消息是源文件与构建模块时不同。

无论如何我做了一些调试,并且能够找到导致异常的SQL命令。就是这样:

merge HangFire.Server as Target 
using (VALUES (@id, @data, @heartbeat)) as Source (Id, Data, Heartbeat) 
on Target.Id = Source.Id 
when matched then 
update set Data = Source.Data, LastHeartbeat = Source.Heartbeat 
when not matched then 
insert (Id, Data, LastHeartbeat) values (Source.Id, Source.Data, Source.Heartbeat);

合并命令语法可能与SQL Server 2005不兼容,但我无法找出异常的原因。我怀疑VALUES条款。任何帮助将不胜感激。

0 个答案:

没有答案