public void ExecuteOnEndOfSubmit(string sql, Action <int> onExecutedAction, params object[] values) { if (onEndOfSubmitCommands == null) { onEndOfSubmitCommands = new List <(DbSqlCommand, Action <int>)>(); } var sqlCommand = new DbSqlCommand(sql); sqlCommand.CommandTimeout = (int)Settings.CommandTimeout.TotalSeconds; QueryHelpers.AddSqlParameters(sqlCommand, values); onEndOfSubmitCommands.Add((sqlCommand, onExecutedAction)); }
private IReadOnlyList <object> Load(Type type, string sql, params object[] values) { List <object> entities = new List <object>(); using (var sqlConnection = GetConnection()) { using (var sqlCommand = new DbSqlCommand(sql)) { sqlCommand.Connection = sqlConnection.SqlConnection; QueryHelpers.AddSqlParameters(sqlCommand, values); sqlConnection.Open(); using (SqlDataReader reader = sqlCommand.ExecuteReader(CommandBehavior.SequentialAccess)) { var fillVisitor = new FillVisitor( reader: reader, db: this, objectFillerFactory: new ObjectFillerFactory()); while (fillVisitor.Read()) { object entity = QueryHelpers.Fill(type, entity: null, fillVisitor: fillVisitor); entities.Add(entity); } } } } var entitiesToReturn = new List <object>(entities.Count); var configuration = GlobalDbConfiguration.GetConfigurationOrEmpty(type); var entityFilter = configuration.EntityFilter; var queryLogger = GlobalDbConfiguration.QueryLogger; foreach (object entity in entities) { queryLogger.IncrementLoadedElementCount(increment: 1); if (entityFilter.DoReturnEntity(Settings, entity)) { entitiesToReturn.Add(entity); } } OnEntitiesLoaded(entitiesToReturn .Where(e => e is DbEntity) .Select(e => e as DbEntity) .ToList()); return(entitiesToReturn); }
public int Execute(string sql, TimeSpan timeout, params object[] values) { using (var sqlConnection = GetConnection()) { using (var sqlCommand = new DbSqlCommand(sql)) { sqlCommand.CommandTimeout = (int)timeout.TotalSeconds; QueryHelpers.AddSqlParameters(sqlCommand, values); sqlCommand.Connection = sqlConnection.SqlConnection; sqlConnection.Open(); return(sqlCommand.ExecuteNonQuery()); } } }