private static void MigrateDBAuto(ModelTMSContainer Context) // under construction!!! { string Test = ""; System.Data.Metadata.Edm.MetadataWorkspace CheckDB = Context.MetadataWorkspace; System.Data.Metadata.Edm.ItemCollection EntColl = CheckDB.GetItemCollection(System.Data.Metadata.Edm.DataSpace.SSpace); foreach (EntityType Ent in EntColl.OfType <EntityType>()) { // check if all properties are present foreach (EdmProperty Mem in Ent.Members.OfType <EdmProperty>()) { Test = Test + Ent.Name + " - " + Mem.Name + "\r\n"; } } System.Data.Metadata.Edm.ItemCollection KeyColl = CheckDB.GetItemCollection(System.Data.Metadata.Edm.DataSpace.CSpace); foreach (EntityType Ent in KeyColl.OfType <EntityType>()) { // check if all properties are present foreach (NavigationProperty Nav in Ent.Members.OfType <NavigationProperty>()) { Test = Test + Ent.Name + " - " + Nav.Name + "\r\n"; } } }
public static LegacyMetadata.MetadataWorkspace ToLegacyMetadataWorkspace(this MetadataWorkspace metadataWorkspace) { Debug.Assert(metadataWorkspace != null, "metadataWorkspace != null"); // The cloned workspace is supposed to be used only by provider. Therefore we only care about SSpace. // For CSpace and C-S mapping we register dummy item collections just to make the workspace checks pass. var legacyStoreItemCollection = ((StoreItemCollection)metadataWorkspace.GetItemCollection(DataSpace.SSpace)).ToLegacyStoreItemCollection(); var version = EntityFrameworkVersion.DoubleToVersion(legacyStoreItemCollection.StoreSchemaVersion); var legacyEdmItemCollection = GetLegacyEdmItemCollection(version); var legacyWorkspace = new LegacyMetadata.MetadataWorkspace(); legacyWorkspace.RegisterItemCollection(legacyEdmItemCollection); legacyWorkspace.RegisterItemCollection(legacyStoreItemCollection); var msl = string.Format( CultureInfo.InvariantCulture, MslTemplate, SchemaManager.GetMSLNamespaceName(version), legacyStoreItemCollection.GetItems <LegacyMetadata.EntityContainer>().Single().Name); using (var stringReader = new StringReader(msl)) { using (var reader = XmlReader.Create(stringReader)) { var legacyMappingItemCollection = new LegacyMapping.StorageMappingItemCollection( legacyEdmItemCollection, legacyStoreItemCollection, new[] { reader }); legacyWorkspace.RegisterItemCollection(legacyMappingItemCollection); } } return(legacyWorkspace); }
public static LegacyMetadata.MetadataWorkspace ToLegacyMetadataWorkspace(this MetadataWorkspace metadataWorkspace) { Debug.Assert(metadataWorkspace != null, "metadataWorkspace != null"); // The cloned workspace is supposed to be used only by provider. Therefore we only care about SSpace. // For CSpace and C-S mapping we register dummy item collections just to make the workspace checks pass. var legacyStoreItemCollection = ((StoreItemCollection)metadataWorkspace.GetItemCollection(DataSpace.SSpace)).ToLegacyStoreItemCollection(); var version = EntityFrameworkVersion.DoubleToVersion(legacyStoreItemCollection.StoreSchemaVersion); var legacyEdmItemCollection = GetLegacyEdmItemCollection(version); var legacyWorkspace = new LegacyMetadata.MetadataWorkspace(); legacyWorkspace.RegisterItemCollection(legacyEdmItemCollection); legacyWorkspace.RegisterItemCollection(legacyStoreItemCollection); var msl = string.Format( CultureInfo.InvariantCulture, MslTemplate, SchemaManager.GetMSLNamespaceName(version), legacyStoreItemCollection.GetItems<LegacyMetadata.EntityContainer>().Single().Name); using (var stringReader = new StringReader(msl)) { using (var reader = XmlReader.Create(stringReader)) { var legacyMappingItemCollection = new LegacyMapping.StorageMappingItemCollection( legacyEdmItemCollection, legacyStoreItemCollection, new[] { reader }); legacyWorkspace.RegisterItemCollection(legacyMappingItemCollection); } } return legacyWorkspace; }