public IEnumerable <T> Execute() { using (var command = DataAccessQuery.GetCommand()) { using (var reader = command.ExecuteReader()) { while (reader.Read()) { T entity = EntityFactory(); foreach (var nameAndReaderAction in ReaderActionsByName) { var name = nameAndReaderAction.Key; var readerAction = nameAndReaderAction.Value; var position = reader.GetOrdinal(name); readerAction(reader, position, entity); } yield return(entity); } } } }
public int Execute() { using (var command = DataAccessQuery.GetCommand()) { using (var reader = command.ExecuteReader()) { int index = 0; while (reader.Read()) { foreach (var nameAndReaderAction in ReaderActionsByName) { var name = nameAndReaderAction.Key; var readerAction = nameAndReaderAction.Value; var position = reader.GetOrdinal(name); readerAction(reader, position, index); } index++; } return(index); } } }