使用对象而不是动态参数时在dapper中设置输出值

时间:2019-02-22 11:52:33

标签: mysql asp.net-core dapper

我将SqlHelper编写为SOC,以便使用单个类添加,搜索和更新任何给定的对象,对于我在asp.net core 2.0中编写的相同函数,如下所示:

public async Task<int> Add(DynamicParameters parameters, string SPName)
        {  
            using (MySqlConnection con = new MySqlConnection(connString))
            { 
                using (MySqlCommand cmd = new MySqlCommand(SPName, con))
                {
                    parameters.Add("_ReturnValue", dbType: DbType.Int32, direction: ParameterDirection.Output);
                    await con.ExecuteAsync(SPName, parameters, commandType: CommandType.StoredProcedure);
                    return parameters.Get<int>("_ReturnValue"); 
                }
            } 
        }

但是在这种方法中,我每次必须将参数添加到动态参数中:

var parameters = new DynamicParameters();
            parameters.Add("_Salutation",lead.Salutation);
            parameters.Add("_LeadStatus",lead.LeadStatus);
            parameters.Add( "_FirstName",lead.FirstName);
            parameters.Add("_LastName",lead.LastName);
            parameters.Add("_Email",lead.Email);
            parameters.Add("_PhoneNo",lead.PhoneNo);
SqlHelper sql = new SqlHelper();
            var res = await sql.Add(parameters,"AddLead");

为简化起见,我修改了Sqlhelper方法,现在的方法是这样的:

public async Task<int> AddbyObj(object parameters, string SPName)
        {  
            using (MySqlConnection con = new MySqlConnection(connString))
            { 
                using (MySqlCommand cmd = new MySqlCommand(SPName, con))
                {
                    var res =  await con.ExecuteAsync(SPName, parameters, commandType: CommandType.StoredProcedure);
                    return res;
                }
            } 
        } 

在第二种方法中,我希望添加输出参数。 用这种方法一切都很好,但是现在我不知道如何添加输出值参数了。

0 个答案:

没有答案