/// <summary> /// Выполняет SQL-запрос и возвращает ответ указанного типа в качестве списка<para/> /// Если объект должен вернуть сложный объект, то нужно передать в аргументы делегат создающий этот объект /// </summary> /// <typeparam name="T">Тип результата</typeparam> /// <param name="entityFactory">Делегат создающий объект</param> /// <returns>Список ответов указанного типа/returns> public IEnumerable <T> Read <T>(Func <T> entityFactory = null) { CheckNotDisposed(); Func <T> localEntityFactory = entityFactory; List <T> entities = new List <T>(); using (DbCommand command = CreateCommand()) { using (DbDataReader reader = command.ExecuteReader()) { if (!reader.HasRows) { break; } while (reader.Read()) { T entity = localEntityFactory is null ? default : localEntityFactory(); entities.Add(readerMapper.Map(reader, entity)); } } } Dispose(); return(entities); }
public ObservableCollection <ReaderModel> FindReaderByTicket(int number) { var res = _service.FindReaderByTicket(number); return(new ObservableCollection <ReaderModel>(res.Select(r => _mapper.Map(r)))); }