public override void InvokeHandler(CommandSetState state) { var diagram = state.CurrentDocView.CurrentDiagram; var modelRoot = diagram.Store.ElementDirectory.FindElements<ModelRoot>().Single(); var connectionString = modelRoot.ConnectionString; var dlg = new GenerateSQLForm(); if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) { var sqlGenerator = new DbSchemaGenerator(diagram) { CleanUpDbSchema = dlg.CleanupDbSchema, UseNavigationPropertyNameForFKeys = dlg.UseNavigationPropertyNameForFKeys, }; var sb = sqlGenerator.GenerateScripts(); System.IO.File.WriteAllText(dlg.Filename, sb.ToString()); if (dlg.OverwriteDatabase) { //Creating a connection to the given database using (SqlConnection sqlConnection = new SqlConnection(connectionString)) { var originalDatabase = sqlConnection.Database; sqlConnection.Open(); //Switching to master database sqlConnection.ChangeDatabase("master"); ServerConnection svrConnection = new ServerConnection(sqlConnection); //Recreating database and executing the query file DropAndRecreateDatabase(originalDatabase, svrConnection); svrConnection.ExecuteNonQuery(System.IO.File.ReadAllText(dlg.Filename)); } ModelerTransaction.Enter(() => { //Importing the new schema from database var sync = new Utilities.DbSchemaImporter(diagram); sync.FullDatabaseReload = true; sync.ImportModels(); }); } System.Windows.Forms.MessageBox.Show("Sql script generation completed."); } }
public override void InvokeHandler(CommandSetState state) { var diagram = state.CurrentDocView.CurrentDiagram; var modelRoot = diagram.Store.ElementDirectory.FindElements <ModelRoot>().Single(); var connectionString = modelRoot.ConnectionString; var dlg = new GenerateSQLForm(); if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) { var sqlGenerator = new DbSchemaGenerator(diagram) { CleanUpDbSchema = dlg.CleanupDbSchema, UseNavigationPropertyNameForFKeys = dlg.UseNavigationPropertyNameForFKeys, }; var sb = sqlGenerator.GenerateScripts(); System.IO.File.WriteAllText(dlg.Filename, sb.ToString()); if (dlg.OverwriteDatabase) { //Creating a connection to the given database using (SqlConnection sqlConnection = new SqlConnection(connectionString)) { var originalDatabase = sqlConnection.Database; sqlConnection.Open(); //Switching to master database sqlConnection.ChangeDatabase("master"); ServerConnection svrConnection = new ServerConnection(sqlConnection); //Recreating database and executing the query file DropAndRecreateDatabase(originalDatabase, svrConnection); svrConnection.ExecuteNonQuery(System.IO.File.ReadAllText(dlg.Filename)); } ModelerTransaction.Enter(() => { //Importing the new schema from database var sync = new Utilities.DbSchemaImporter(diagram); sync.FullDatabaseReload = true; sync.ImportModels(); }); } System.Windows.Forms.MessageBox.Show("Sql script generation completed."); } }