Dapper Orm删除异常

ftd*_*per 4 c# dapper

我正试图用小巧玲珑的东西删除.但我得到这个例外:

使用多映射API时,如果您具有Id以外的密钥,请确保设置splitOn参数

我的代码如下所示:

public void DeleteRole(int ID)
    {
        using (var conn = new SqlConnection(connectionString))
        {
            conn.Open();
            conn.Query("DELETE FROM [Role] WHERE ID=@ID", new {ID=ID });
        }
    }
Run Code Online (Sandbox Code Playgroud)

任何的想法?

Ser*_*kiy 11

指定查询的返回类型(整数)

int rowsCount = conn.Query<int>("DELETE FROM [Role] WHERE ID = @ID", new { ID });
Run Code Online (Sandbox Code Playgroud)

或者像Michael指出的那样使用Execute方法

注意:您无需手动打开连接 - Dapper将为您打开它.

BTW通用查询将适用于您的原始问题:

int id = conn.Query<int>(@"INSERT [Role] (Name, CreatedDate,UpdatedDate) 
                           VALUES (@Name, @CreatedDate,@UpdatedDate) 
                           SELECT CAST(scope_identity() as INT)", model).First();
Run Code Online (Sandbox Code Playgroud)


Mik*_*oud 9

这里的问题是你使用Query而不是Execute.该Query方法试图找到一个名为Id构建结果集的列,但不能,因为它不是查询.