Beispiel #1
0
        protected void ReadConfig(IOrmConfigGroup ormConfigGroup)
        {
            LinkedHashSet <IEntityConfig> entities = new LinkedHashSet <IEntityConfig>();

            entities.AddAll(ormConfigGroup.GetLocalEntityConfigs());
            entities.AddAll(ormConfigGroup.GetExternalEntityConfigs());

            foreach (IEntityConfig entityConfig in entities)
            {
                Type entityType = entityConfig.EntityType;
                if (EntityMetaDataProvider.GetMetaData(entityType, true) != null)
                {
                    continue;
                }
                Type realType = entityConfig.RealType;

                EntityMetaData metaData = new EntityMetaData();
                metaData.EntityType  = entityType;
                metaData.RealType    = realType;
                metaData.LocalEntity = entityConfig.Local;

                EntityMetaDataReader.AddMembers(metaData, entityConfig);

                managedEntityMetaData.Add(metaData);
                lock (EntityMetaDataExtendable)
                {
                    EntityMetaDataExtendable.RegisterEntityMetaData(metaData);
                }
            }
        }
Beispiel #2
0
        public IOrmConfigGroup GetOrmConfigGroup(String xmlFileNames)
        {
            lock (writeLock)
            {
                IOrmConfigGroup ormConfigGroup = xmlFileNamesConfigGroupMap.Get(xmlFileNames);
                if (ormConfigGroup != null)
                {
                    return(ormConfigGroup);
                }
            }
            LinkedHashSet <IEntityConfig> localEntities    = new LinkedHashSet <IEntityConfig>();
            LinkedHashSet <IEntityConfig> externalEntities = new LinkedHashSet <IEntityConfig>();

            XDocument[] docs = xmlConfigUtil.ReadXmlFiles(xmlFileNames);
            foreach (XDocument doc in docs)
            {
                //doc.normalizeDocument();
                String        documentNamespace = xmlConfigUtil.ReadDocumentNamespace(doc);
                IOrmXmlReader ormXmlReader      = ormXmlReaderRegistry.GetOrmXmlReader(documentNamespace);
                ormXmlReader.LoadFromDocument(doc, localEntities, externalEntities);
            }
            lock (writeLock)
            {
                IOrmConfigGroup ormConfigGroup = xmlFileNamesConfigGroupMap.Get(xmlFileNames);
                if (ormConfigGroup != null)
                {
                    return(ormConfigGroup);
                }
                ormConfigGroup = new OrmConfigGroup(new LinkedHashSet <IEntityConfig>(localEntities), new LinkedHashSet <IEntityConfig>(externalEntities));
                xmlFileNamesConfigGroupMap.Put(xmlFileNames, ormConfigGroup);
                return(ormConfigGroup);
            }
        }
Beispiel #3
0
 public void AfterStarted()
 {
     if (xmlFileName != null)
     {
         IOrmConfigGroup ormConfigGroup = OrmConfigGroupProvider.GetOrmConfigGroup(xmlFileName);
         ReadConfig(ormConfigGroup);
     }
 }