/// <summary> /// Construct a new Mapping Fragment object /// </summary> /// <param name="tableExtent"></param> /// <param name="typeMapping"></param> internal StorageMappingFragment(EntitySet tableExtent, StorageTypeMapping typeMapping, bool distinctFlag) { Debug.Assert(tableExtent != null, "Table should not be null when constructing a Mapping Fragment"); Debug.Assert(typeMapping != null, "TypeMapping should not be null when constructing a Mapping Fragment"); this.m_tableExtent = tableExtent; this.m_typeMapping = typeMapping; this.m_isSQueryDistinct = distinctFlag; }
protected virtual void Visit(StorageTypeMapping storageTypeMapping) { foreach (var type in storageTypeMapping.IsOfTypes) { Visit(type); } foreach (var fragment in storageTypeMapping.MappingFragments) { Visit(fragment); } Visit(storageTypeMapping.SetMapping); foreach (var type in storageTypeMapping.Types) { Visit(type); } }
protected override void Visit(StorageTypeMapping storageTypeMapping) { int index; if (!this.AddObjectToSeenListAndHashBuilder(storageTypeMapping, out index)) { return; } this.AddObjectStartDumpToHashBuilder(storageTypeMapping, index); #region Inner data visit base.Visit(storageTypeMapping); #endregion this.AddObjectEndDumpToHashBuilder(); }
/// <summary> /// Add type mapping as a child under this SetMapping /// </summary> /// <param name="typeMapping"></param> internal void AddTypeMapping(StorageTypeMapping typeMapping) { this.m_typeMappings.Add(typeMapping); }