public override IEnumerable <FreeDocument> Generate(IFreeDocument document = null) { var mount = 0; if (Mount < 0) { mount = int.MaxValue; } TableInfo table = TableNames.SelectItem; if (table != null) { var con = new VirtualDataCollection(table.GetVirtualProvider <IFreeDocument>()); foreach (var item in con.ComputeData.Skip(Position).Take(mount).Select(d => d.DictSerialize())) { yield return(item); } } }
public override IEnumerable<IFreeDocument> Generate(IFreeDocument document = null) { var mount = 0; if (Mount < 0) mount = int.MaxValue; var table = this.ConnectorSelector.SelectItem?.RefreshTableNames().FirstOrDefault(d=>d.Name== TableNames.SelectItem); if (table != null) { var con = new VirtualDataCollection(table.GetVirtualProvider<IFreeDocument>()); foreach (var item in con.ComputeData.Take(mount)) { if(item!=null) yield return item; } } }
public DataCollection ReadCollection(IDataBaseConnector connector, string tableName, bool isVirtual) { if (isVirtual) { IItemsProvider <IFreeDocument> vir = null; TableInfo tableInfo = connector.RefreshTableNames().FirstOrDefault(d => d.Name == tableName); var enumable = connector as IEnumerableProvider <IFreeDocument>; if (enumable != null && enumable.CanSkip(tableInfo.Name) == false) { vir = new EnumableVirtualProvider <IFreeDocument>( enumable.GetEnumerable(tableInfo.Name), tableInfo.Size); } else { vir = new DataBaseVirtualProvider <IFreeDocument>(tableInfo.Connector, tableInfo.Name); } int count = 1000; if (connector.TypeName == "网页爬虫连接器") { count = 100; } var col = new VirtualDataCollection(vir, count) { Name = tableInfo.Name }; AddDataCollection(col); return(col); } else { Task <List <IFreeDocument> > datas = GetDataFromDB(connector, tableName, true); DataCollection col = AddDataCollection(datas.Result); return(col); } }