Dapper-Execute

描述

Execute是一种可被任何IDbConnection类型的对象调用的扩展方法。它可以执行一次或多次命令, 并返回受影响的行数。此方法通常用于执行

参数

参数名 描述
sql 执行的sql命令脚本
param 执行命令的参数,默认为null
transaction 事务参数,默认为null
commandTimeout 命令超时时长(秒),默认为null
commandType 命令类型,默认为null

存储过程

单次执行

public void ExecuteSingleSpInsertTest()
{
    var sp = "Invoice_Insert";
    var singleParam = new { Kind = InvoiceKind.WebInvoice, Code = "Single_Sp_Insert_1" };
    var affectedRows = Rep.Execute(sp, singleParam, System.Data.CommandType.StoredProcedure);
    Assert.True(affectedRows > 0);
}

多次执行

public void ExecuteManySpInsertTest()
{
    var sp = "Invoice_Insert";
    var param = new[]
    {
        new { Kind = InvoiceKind.WebInvoice, Code = "Many_Sp_Insert_1" },
        new { Kind = InvoiceKind.StoreInvoice, Code = "Many_Sp_Insert_2" },
        new { Kind = InvoiceKind.StoreInvoice, Code = "Many_Sp_Insert_3" },
        };
    var affectedRows = Rep.Execute(sp, param, System.Data.CommandType.StoredProcedure);
    Assert.True(affectedRows > 0);
}

插入

插入一条

public void ExecuteSingleSqlInsertTest()
{
    string sql = "INSERT INTO Invoice (Code) Values (@Code);";
    var singleParam = new { Kind = InvoiceKind.WebInvoice, Code = "Single_Sql_Insert_1" };
    var affectedRows = Rep.Execute(sql, singleParam);
    Assert.True(affectedRows > 0);
}

插入多条

public void ExecuteManySqlInsertTest()
{
    string sql = "INSERT INTO Invoice (Code) Values (@Code);";
    var param = new[]
    {
        new { Kind = InvoiceKind.WebInvoice, Code = "Many_Sql_Insert_1" },
        new { Kind = InvoiceKind.StoreInvoice, Code = "Many_Sql_Insert_2" },
        new { Kind = InvoiceKind.StoreInvoice, Code = "Many_Sql_Insert_3" },
    };
    var affectedRows = Rep.Execute(sql, param);
    Assert.True(affectedRows > 0);
}

更新

更新一条

public void ExecuteSingleSqlUpdateTest()
{
    string sql = "UPDATE Invoice SET Code = @Code WHERE InvoiceID = @InvoiceID;";
    var singleParam = new { InvoiceID = 1, Code = "Single_Sql_Update_1" };
    var affectedRows = Rep.Execute(sql, singleParam);
    Assert.True(affectedRows > 0);
}

更新多条

public void ExecuteManySqlUpdateTest()
{
    string sql = "UPDATE Invoice SET Code = @Code WHERE InvoiceID = @InvoiceID;";
    var param = new[]
    {
        new { InvoiceID =1, Code = "Many_Sql_Update_1" },
        new { InvoiceID =2, Code = "Many_Sql_Update_2" },
        new { InvoiceID =3, Code = "Many_Sql_Update_3" },
    };
    var affectedRows = Rep.Execute(sql, param);
    Assert.True(affectedRows > 0);
}

删除

删除一条

public void ExecuteSingleSqlDeleteTest()
{
    string sql = "DELETE FROM Invoice WHERE InvoiceID = @InvoiceID;";
    var singleParam = new { InvoiceID = 1 };
    var affectedRows = Rep.Execute(sql, singleParam);
    Assert.True(affectedRows > 0);
}

删除多条

public void ExecuteManySqlDeleteTest()
{
    string sql = "DELETE FROM Invoice WHERE InvoiceID = @InvoiceID;";
    var param = new[]
    {
        new { InvoiceID =1 },
        new { InvoiceID =2 },
        new { InvoiceID =3 },
    };
    var affectedRows = Rep.Execute(sql, param);
    Assert.True(affectedRows > 0);
}

参考:Dapper Tutorial


下载:示例代码下载

posted @ 2018-10-03 12:09  山中自有人  阅读(2021)  评论(0)    收藏  举报