我有一个数据表,其中包含一堆填充了传感器数据的记录。为避免重复条目,在查询中使用了条件语句。当使用Dapper的execute方法时,返回一个负数,表明没有行被更改。
var result = dbConnection.Execute("...", new { Id = 1 });
由于表没有主键,因为第三方返回字符串的标识符。当我使用以下查询执行上述代码时。
IF (0 >= (SELECT COUNT(*) FROM [dbo].[...] WHERE @Id = [Id]))
BEGIN
INSERT INTO [dbo].[...] (
[Id]
) VALUES (
@Id
)
END
Dapper将为受影响的行返回负数,但实际上会插入记录。如果我执行以下查询:
INSERT INTO [dbo].[...] (
[Id]
) VALUES (
@Id
)
Dapper会返回一个正数,表示一行受到影响。 Dapper对如何处理条件有限制吗?如何收到受影响行的真实表示。