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