IEnumerable <T> IMultipleResults.GetResult <T>() { MetaType rowType = null; Func <MetaType, bool> predicate = null; if (function != null) { foreach (MetaType type2 in function.ResultRowTypes) { if (predicate == null) { predicate = (it => it.Type == typeof(T)); } rowType = type2.InheritanceTypes.SingleOrDefault(predicate); if (rowType != null) { break; } } } if (rowType == null) { rowType = provider.services.Model.GetMetaType(typeof(T)); } IObjectReader nextResult = provider.GetDefaultFactory(rowType).GetNextResult(session, false); if (nextResult == null) { Dispose(); return(null); } return(new SingleResult <T>(new OneTimeEnumerable <T>((IEnumerator <T>)nextResult), executeResult, provider.services.Context)); }