dapper.net多重删除问题

时间:2014-08-13 16:12:57

标签: c# dapper micro-orm

我试图在c#类中删除两个带有两个不同vairables的表,但是我收到以下错误消息:

  

使用多映射API时,如果您的ID不是Id,请确保设置splitOn参数   参数名称:splitOn

通过SQL事件探查器捕获命令时,sql语句执行正常,所以我很难过。

精巧的代码是:

 public void DeleteListCode(string listCodeId)
    {
       using (var block = new TransactionBlock())
       {
           // Get the code first
           const string sql = "SELECT ListCode from ListCodes WHERE id =@listCodeId";
           var code = TransactionBlock.Connection.Query<string>(sql, new {listCodeId}, TransactionBlock.Transaction)
              .FirstOrDefault();

           if (string.IsNullOrEmpty(code)) return;

           const string sql2 = "delete from Lists WHERE ListCode = @code " +
                               "delete from ListCodes where Id = @listCodeId";

            TransactionBlock.Connection.Query(sql2, new {listCodeId, code}, TransactionBlock.Transaction);
           block.Commit();
       }
    }

我已成功设法使用多选语句,但在使用两个自治参数的意义上,这略有不同。

1 个答案:

答案 0 :(得分:6)

第二个操作应该使用Execute,而不是Query。基本上它不是一个查询。这应该是你所需要的一切。