protected override IAsyncResult BeginExecute(AsyncCodeActivityContext context, AsyncCallback callback, object state) { // configure the helper object to access the database dbHelper = new DbHelper(); dbHelper.ConnectionString = this.ConnectionString.Get(context); dbHelper.ProviderName = this.ProviderName.Get(context); dbHelper.ConfigName = this.ConfigName.Get(context); dbHelper.Sql = this.Sql.Get(context); dbHelper.CommandType = this.CommandType; dbHelper.Parameters = this.parameters; dbHelper.Init(context); // create the action for doing the actual work Func<int> action = () => dbHelper.Execute(); context.UserState = action; return action.BeginInvoke(callback, state); }