コード例 #1
0
ファイル: ProjectionSelect.cs プロジェクト: morecraf/Siaqodb
        public async Task <IList <T> > ToListAsync()
        {
            EnumeratorSelect <T> e = this.enumerator;

            e.siaqodb = query.Siaqodb;
            List <int> oids = await this.query.GetFilteredOidsAsync();

            if (oids == null)
            {
                oids = await e.siaqodb.LoadAllOIDsAsync <TSource>();
            }
            e.oids = oids;

            if (e == null)
            {
                throw new InvalidOperationException("Cannot enumerate more than once");
            }
            List <T> list = new List <T>();

            while (await e.MoveNextAsync())
            {
                list.Add(e.Current);
            }
            return(list);
        }
コード例 #2
0
ファイル: ProjectionSelect.cs プロジェクト: morecraf/Siaqodb
        public IEnumerator <T> GetEnumerator()
        {
            EnumeratorSelect <T> e = this.enumerator;

            e.siaqodb = query.Siaqodb;
            List <int> oids = this.query.GetFilteredOids();

            if (oids == null)
            {
                oids = e.siaqodb.LoadAllOIDs <TSource>();
            }
            e.oids = oids;

            if (e == null)
            {
                throw new InvalidOperationException("Cannot enumerate more than once");
            }

            //this.enumerator = null;
            return(e);
        }
コード例 #3
0
ファイル: ProjectionSelect.cs プロジェクト: morecraf/Siaqodb
 public ProjectionSelectReader(List <SqoColumn> columns, Func <ProjectionRow, T> projector, SqoQuery <TSource> query)
 {
     this.enumerator = new EnumeratorSelect <T>(columns, projector);
     this.query      = query;
 }