/// <summary> /// Map to an existing instance /// </summary> /// <typeparam name="T"></typeparam> /// <param name="connection"></param> /// <param name="query"></param> /// <param name="ignoreExtraRows"></param> /// <param name="target"></param> /// <param name="parameters"></param> /// <returns></returns> protected bool TryGetSingle <T>( object query, T target, bool ignoreExtraRows, params object[] parameters) { var wrapper = new SqlQueryParser <T>(QueryType.Select, query, Transaction, parameters); wrapper.ExpectSelectQuery(); bool looped = false; using (IDataReader reader = wrapper.RunQuery(StorageController)) { DataReaderWrapper drWrap = new DataReaderWrapper(reader); MapperWrapper <T> mapWrap = new MapperWrapper <T>(drWrap); foreach (var item in mapWrap) { if (looped) { throw new IQException("More than one record was returned by the Single<T> query"); } target = item; looped = true; if (ignoreExtraRows) { break; } } } return(looped); }
protected bool TryGetSingle <T>( object query, out T target, bool ignoreExtraRows, params object[] parameters) { var wrapper = new SqlQueryParser <T>(QueryType.Select, query, Transaction, parameters); wrapper.ExpectSelectQuery(); //wrapper.Query.Top = 1; return(TryGetSingle(wrapper, ignoreExtraRows, out target)); }