private void CopyMembers(QueryObject old) { this.syncRoot = new object(); this.context = old.context; this.scheduler = old.scheduler; this.queryFactoryTypeName = old.queryFactoryTypeName; this.queryFactory = new Lazy<QueryFactory>(() => (QueryFactory)Activator.CreateInstance(Type.GetType(queryFactoryTypeName)), false); this.federationReference = new EntityProperty<Registry.Federation>(old.federationReference); this.queryString = old.queryString; //this.databaseVersionName = old.databaseVersionName; //this.defaultDatasetName = old.defaultDatasetName; //this.defaultSchemaName = old.defaultSchemaName; this.defaultDataset = old.defaultDataset; this.temporaryDataset = old.temporaryDataset; this.codeDataset = old.codeDataset; this.customDatasets = new List<DatasetBase>(old.customDatasets); this.executionMode = old.executionMode; this.isCanceled = false; this.cancelableTasks = new Dictionary<string, ICancelableTask>(); this.assignedServerInstanceReference = new EntityProperty<ServerInstance>(old.assignedServerInstanceReference); this.interpretedQueryString = null; this.selectStatement = null; this.temporaryDatabaseInstanceReference = new EntityProperty<DatabaseInstance>(old.temporaryDatabaseInstanceReference); this.temporaryTables = new ConcurrentDictionary<string, Table>(old.temporaryTables, SchemaManager.Comparer); this.temporaryViews = new ConcurrentDictionary<string, View>(old.temporaryViews, SchemaManager.Comparer); this.codeDatabaseInstanceReference = new EntityProperty<DatabaseInstance>(old.codeDatabaseInstanceReference); }
public QueryObject(QueryObject old) { CopyMembers(old); }