当然,用于创建和处理Connection的功能会很好用。
protected void Execute(Action<IDbConnection> query){ using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["myDB"].ConnectionString)) { query.Invoke(db); }}而您的简化呼叫站点:
public void SaveCustomer(CustomerDTO custDTO){ Execute(db => db.Execute(saveCustSp, custDTO, CommandType.StoredProcedure));}具有返回值:
public T Get<T>(Func<IDbConnection, T> query){ using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["myDB"].ConnectionString)) { return query.Invoke(db); }}在呼叫站点中,只需编写要使用的逻辑即可。
public IEnumerable<EmployeeDTO> GetEmployeeDetails(int employeeId){ return Get<IEnumerable<EmployeeDTO>(db => db.Query<EmployeeDTO>(anotherSp, new { EmployeeID = employeeId }, CommandType.StoredProcedure));}


