public override IEnumerable <T> Execute <T>(QueryCommand command, Func <FieldReader, T> fnProjector, MappingEntity entity, object[] paramValues) { this.LogCommand(command, paramValues); this.StartUsingConnection(); try { IDbCommand cmd = this.GetCommand(command, paramValues); IDataReader reader = this.ExecuteReader(cmd); var result = Project(reader, fnProjector, entity, true); if (this.provider.ActionOpenedConnection) { result = result.ToList(); } else { result = new EnumerateOnce <T>(result); } return(result); } finally { this.StopUsingConnection(); } }
public override IEnumerable <T> Execute <T>(QueryCommand command, Func <FieldReader, T> fnProjector, MappingEntity entity, object[] paramValues) { IEnumerable <T> enumerable2; this.LogCommand(command, paramValues); this.StartUsingConnection(); try { DbCommand command2 = this.GetCommand(command, paramValues); using (DbDataReader reader = this.ExecuteReader(command2)) { IEnumerable <T> source = this.Project <T>(reader, fnProjector, entity, true); if (this.provider.ActionOpenedConnection) { source = source.ToList <T>(); } else { source = new EnumerateOnce <T>(source).ToList <T>(); } enumerable2 = source; } } finally { this.StopUsingConnection(); } return(enumerable2); }
public override IEnumerable <T> ExecuteBatch <T>(QueryCommand query, IEnumerable <object[]> paramSets, Func <FieldReader, T> fnProjector, MappingEntity entity, int batchSize, bool stream) { IEnumerable <T> enumerable2; this.StartUsingConnection(); try { IEnumerable <T> source = this.ExecuteBatch <T>(query, paramSets, fnProjector, entity); if (!(stream && !this.ActionOpenedConnection)) { return(source.ToList <T>()); } enumerable2 = new EnumerateOnce <T>(source); } finally { this.StopUsingConnection(); } return(enumerable2); }
public override IEnumerable <int> ExecuteBatch(QueryCommand query, IEnumerable <object[]> paramSets, int batchSize, bool stream) { IEnumerable <int> enumerable2; this.StartUsingConnection(); try { IEnumerable <int> source = this.ExecuteBatch(query, paramSets); if (!(stream && !this.ActionOpenedConnection)) { return(source.ToList <int>()); } enumerable2 = new EnumerateOnce <int>(source); } finally { this.StopUsingConnection(); } return(enumerable2); }