private static void ReplaceModelRoot( CommandProcessorContext cpc, EFRuntimeModelRoot existingModelRoot, XmlReader newSchemaReader, CreateModelRootCallback createModelRootCallback) { var newModelRootNode = XElement.Load(newSchemaReader); // find the XObject representing the existing EFRuntimeModelRoot EFObject var existingModelRootNode = existingModelRoot.XObject as XElement; Debug.Assert(existingModelRootNode != null, "existingRootXElement is null in ReplaceModelRoot()"); // find the parent of the existing XObject tied to the EFRuntimeModelRoot var existingModelRootParentNode = existingModelRootNode.Parent; // delete the old EFRuntimeModelRoot EFObject but do not delete its anti-dependencies if (null != existingModelRoot) { var deleteConceptualModelCommand = new DeleteEFElementCommand(existingModelRoot, true, false); DeleteEFElementCommand.DeleteInTransaction(cpc, deleteConceptualModelCommand); } existingModelRootParentNode.Add(newModelRootNode); // Callback to create the EFRuntimeModelRoot EFObject createModelRootCallback(newModelRootNode); }
private static string GetSchemaFromRuntimeModelRoot(EFRuntimeModelRoot modelRoot) { Debug.Assert(modelRoot != null, "EFRuntimeModelROot is null "); var sb = new StringBuilder(); Debug.Assert( modelRoot != null && modelRoot.XElement != null, "Could not find the runtime model root or its XElement in GetSchemaFromRuntimeModelRoot"); if (modelRoot != null && modelRoot.XElement != null) { using (var writer = new StringWriter(sb, CultureInfo.CurrentCulture)) { modelRoot.XElement.Save(writer); } } return(sb.ToString()); }
private static void ReplaceModelRoot( CommandProcessorContext cpc, EFRuntimeModelRoot existingModelRoot, XmlReader newSchemaReader, CreateModelRootCallback createModelRootCallback) { var newModelRootNode = XElement.Load(newSchemaReader); // find the XObject representing the existing EFRuntimeModelRoot EFObject var existingModelRootNode = existingModelRoot.XObject as XElement; Debug.Assert(existingModelRootNode != null, "existingRootXElement is null in ReplaceModelRoot()"); // find the parent of the existing XObject tied to the EFRuntimeModelRoot var existingModelRootParentNode = existingModelRootNode.Parent; // delete the old EFRuntimeModelRoot EFObject but do not delete its anti-dependencies if (null != existingModelRoot) { var deleteConceptualModelCommand = new DeleteEFElementCommand(existingModelRoot, true, false); DeleteEFElementCommand.DeleteInTransaction(cpc, deleteConceptualModelCommand); } existingModelRootParentNode.Add(newModelRootNode); // Callback to create the EFRuntimeModelRoot EFObject createModelRootCallback(newModelRootNode); }