Exemple #1
0
 private void ExplodeRootStructuredType(RootTypeInfo rootType)
 {
     if (rootType.FlattenedType != null)
     {
         return;
     }
     if (StructuredTypeInfo.NeedsTypeIdProperty((TypeInfo)rootType))
     {
         rootType.AddPropertyRef((PropertyRef)TypeIdPropertyRef.Instance);
         if (rootType.DiscriminatorMap != null)
         {
             rootType.TypeIdKind = TypeIdKind.UserSpecified;
             rootType.TypeIdType = Helper.GetModelTypeUsage(rootType.DiscriminatorMap.DiscriminatorProperty);
         }
         else
         {
             rootType.TypeIdKind = TypeIdKind.Generated;
             rootType.TypeIdType = this.m_stringType;
         }
     }
     if (this.NeedsEntitySetIdProperty((TypeInfo)rootType))
     {
         rootType.AddPropertyRef((PropertyRef)EntitySetIdPropertyRef.Instance);
     }
     if (this.NeedsNullSentinelProperty((TypeInfo)rootType))
     {
         rootType.AddPropertyRef((PropertyRef)NullSentinelPropertyRef.Instance);
     }
     this.ExplodeRootStructuredTypeHelper((TypeInfo)rootType);
     if (TypeSemantics.IsEntityType(rootType.Type))
     {
         this.AddRelProperties((TypeInfo)rootType);
     }
     this.CreateFlattenedRecordType(rootType);
 }