/// <summary> /// Process Driver /// </summary> /// <param name="itree"></param> /// <param name="referencedTypes">structured types referenced in the query</param> /// <param name="referencedEntitySets">entitysets referenced in the query</param> /// <param name="freeFloatingEntityConstructorTypes">entity types that have "free-floating" entity constructors</param> /// <param name="discriminatorMaps">information on optimized discriminator patterns for entity sets</param> /// <param name="relPropertyHelper">helper for rel properties</param> /// <param name="typesNeedingNullSentinel">which types need a null sentinel</param> /// <param name="structuredTypeInfo"></param> internal static void Process(Command itree, HashSet <md.TypeUsage> referencedTypes, HashSet <md.EntitySet> referencedEntitySets, HashSet <md.EntityType> freeFloatingEntityConstructorTypes, Dictionary <md.EntitySetBase, DiscriminatorMapInfo> discriminatorMaps, RelPropertyHelper relPropertyHelper, HashSet <string> typesNeedingNullSentinel, out StructuredTypeInfo structuredTypeInfo) { structuredTypeInfo = new StructuredTypeInfo(typesNeedingNullSentinel); structuredTypeInfo.Process(itree, referencedTypes, referencedEntitySets, freeFloatingEntityConstructorTypes, discriminatorMaps, relPropertyHelper); }
private void Process( Command itree, HashSet <TypeUsage> referencedTypes, HashSet <EntitySet> referencedEntitySets, HashSet <EntityType> freeFloatingEntityConstructorTypes, Dictionary <EntitySetBase, DiscriminatorMapInfo> discriminatorMaps, RelPropertyHelper relPropertyHelper) { System.Data.Entity.Core.Query.PlanCompiler.PlanCompiler.Assert(null != itree, "null itree?"); this.m_stringType = itree.StringType; this.m_intType = itree.IntegerType; this.m_relPropertyHelper = relPropertyHelper; this.ProcessEntitySets(referencedEntitySets, freeFloatingEntityConstructorTypes); this.ProcessDiscriminatorMaps(discriminatorMaps); this.ProcessTypes(referencedTypes); }