我试图在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();
}
}
我已成功设法使用多选语句,但在使用两个自治参数的意义上,这略有不同。
答案 0 :(得分:6)
第二个操作应该使用Execute,而不是Query。基本上它不是一个查询。这应该是你所需要的一切。