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); } } }
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); } }
public void AfterStarted() { if (xmlFileName != null) { IOrmConfigGroup ormConfigGroup = OrmConfigGroupProvider.GetOrmConfigGroup(xmlFileName); ReadConfig(ormConfigGroup); } }