public IList <ElementType> Query <ElementType>(Transaction trans, Type extent, IComparer <ElementType> comparer) { lock (Lock()) { trans = CheckTransaction(trans); QQuery query = (QQuery)Query(trans); query.Constrain(extent); if (null != comparer) { query.SortBy(new GenericComparerAdaptor <ElementType>(comparer)); } IQueryResult queryResult = query.GetQueryResult(); return(new GenericObjectSetFacade <ElementType>(queryResult)); } }
public override IObjectSet Select() { if (_limit == -1) { return(_query.Execute()); } IQueryResult queryResult = _query.GetQueryResult(); IdListQueryResult limitedResult = new IdListQueryResult(_query.Transaction(), _limit ); int counter = 0; IIntIterator4 i = queryResult.IterateIDs(); while (i.MoveNext()) { if (counter++ >= _limit) { break; } limitedResult.Add(i.CurrentInt()); } return(new ObjectSetFacade(limitedResult)); }