I'm getting an error when trying to do a Schema comparison using an existing, saved schema and reading the new schema of the same database. I've pasted the error below.
HResult=-2147467261
Message=Value cannot be null.
Parameter name: key
ParamName=key
Source=mscorlib
StackTrace:
//get the base schema // this is the existing schema from a previous ReadAll and saved to a file.
var baseSchema = App.Instance.Project.DatabaseSchema;
//get the comparison schema
var devReader = new DatabaseReader(App.Instance.Project.DotNetNuke.SiteConnectionString, "System.Data.SqlClient");
var devSchema = devReader.ReadAll();
//compare
var comparison = new CompareSchemas(baseSchema, devSchema);
var script = comparison.Execute();
System.ArgumentNullException was unhandledHResult=-2147467261
Message=Value cannot be null.
Parameter name: key
ParamName=key
Source=mscorlib
StackTrace:
at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
at DatabaseSchemaReader.Utilities.SchemaTablesSorter.TopologicalSort(DatabaseSchema databaseSchema)
at DatabaseSchemaReader.Compare.CompareSchemas.ExecuteResult()
at DatabaseSchemaReader.Compare.CompareSchemas.Execute()
at DNNStudio.Controls.DatabaseControl.refreshDataObject_Click(Object sender, EventArgs e) in C:\Users\randerson1001\Documents\Visual Studio 2015\Projects\DotNetNuke Studio\DotNetNuke Studio\DNNStudio\Controls\DatabaseControl.cs:line 997
at DevComponents.DotNetBar.BaseItem.RaiseClick(eEventSource source)
at DevComponents.DotNetBar.BaseItem.InternalMouseUp(MouseEventArgs objArg)
at DevComponents.DotNetBar.PopupItem.InternalMouseUp(MouseEventArgs objArg)
at DevComponents.DotNetBar.ButtonItem.InternalMouseUp(MouseEventArgs objArg)
at DevComponents.DotNetBar.MenuPanel.OnMouseUp(MouseEventArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at DevComponents.DotNetBar.MenuPanel.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at DNNStudio.Program.Main() in C:\Users\randerson1001\Documents\Visual Studio 2015\Projects\DotNetNuke Studio\DotNetNuke Studio\DNNStudio\Program.cs:line 16
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException: