예제 #1
0
 private static void BuildSlicedMetadataCache()
 {
     SlicedEntityMetadataCache.Clear();
     foreach (var app in _applicationMetadata)
     {
         var entityName     = app.Entity;
         var entityMetadata = Entity(entityName);
         if (app.IsMobileSupported())
         {
             app.Schemas().Add(ApplicationMetadataSchemaKey.GetSyncInstance(),
                               ApplicationSchemaFactory.GetSyncInstance(app.ApplicationName, app.IdFieldName));
         }
         foreach (var webSchema in app.Schemas())
         {
             var schema = webSchema.Value;
             schema.DepandantFields(DependencyBuilder.BuildDependantFields(schema.Fields, schema.DependableFields));
             schema._fieldWhichHaveDeps = schema.DependantFields.Keys;
             var instance = SlicedEntityMetadataBuilder.GetInstance(entityMetadata, schema, app.FetchLimit);
             SlicedEntityMetadataCache[new SlicedEntityMetadataKey(webSchema.Key, entityName)] = instance;
         }
     }
 }