protected QueryCompiler(QueryCore query, bool addReferences) { this.IsMyExtensions = query.IsMyExtensions; if (this.IsMyExtensions) { MyExtensions.UpdateAdditionalRefs(query); } if (GacResolver.IsEntityFrameworkAvailable) { this.References.Add("System.Data.Entity.dll"); } DataContextDriver driver = query.GetDriver(true); if ((query.Repository != null) && (driver != null)) { this.ImportedNamespaces.RemoveRange(driver.GetNamespacesToRemoveInternal(query.Repository)); this.ImportedNamespaces.AddRange(driver.GetNamespacesToAddInternal(query.Repository)); if (addReferences) { this.References.AddRange(query.Repository.GetDriverAssemblies()); } } if (addReferences) { this.References.AddRange(PluginAssembly.GetCompatibleAssemblies(query.IsMyExtensions)); } this.ImportedNamespaces.AddRange(query.AdditionalNamespaces); if (!string.IsNullOrEmpty(query.QueryBaseClassNamespace)) { this.ImportedNamespaces.Add(query.QueryBaseClassNamespace); } if (addReferences) { this.References.AddRange(query.AllFileReferences); foreach (string str in query.AdditionalGACReferences) { string item = GacResolver.FindPath(str); if (item != null) { this.References.Add(item); } } this.References.AddRange(query.GetStaticSchemaSameFolderReferences()); if (!this.IsMyExtensions) { this.References.AddRange(MyExtensions.AdditionalRefs); } } }