Dapper处理条件逻辑

时间:2018-04-25 22:31:40

标签: c# sql dapper

我有一个数据表,其中包含一堆填充了传感器数据的记录。为避免重复条目,在查询中使用了条件语句。当使用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对如何处理条件有限制吗?如何收到受影响行的真实表示。

0 个答案:

没有答案