public T Read(QueryResult queryResult) { var ord = queryResult.GetOrdinal(_aliasName); if (queryResult.IsDBNull(ord)) { return(default(T)); } if (typeof(T).IsEnum) { return((T)(object)QueryTypeReaders.GetTypeReader <int>()(queryResult, ord)); } return(QueryTypeReaders.GetTypeReader <T>()(queryResult, ord)); }
public T Read <T>(IFieldPath <EntityModel, EntityField> fieldPath) { if (typeof(T).IsEnum) { return((T)(object)Read <int>(fieldPath)); } var ord = _queryResult.GetOrdinal(fieldPath.FinalField.ProjectionAlias); if (_queryResult.IsDBNull(ord)) { return(default(T)); } var typeReader = QueryTypeReaders.GetTypeReader <T>(); if (typeReader == null) { throw new InvalidOperationException($"Type `{typeof(T).FullName}` not supported."); } return(typeReader(_queryResult, ord)); }