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));
     }
 }
Esempio n. 2
0
        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));
        }