2

ac# クラス内の 2 つの異なる変数を持つ 2 つのテーブルから削除しようとしていますが、次のエラー メッセージが表示されます。

マルチマッピング API を使用する場合、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();
       }
    }

multi select ステートメントを使用することに成功しましたが、これは 2 つの無名パラメーターを使用するという意味で少し異なります。

4

1 に答える 1

9

2 番目の操作では、Query ではなく Execute を使用する必要があります。基本的にはクエリではありません。それだけで十分です。

于 2014-08-13T17:10:09.087 に答える