protected override void ExecuteCore() { var projects = this.GetSelectedProjects(); if (projects.Count != 1) { MessageBox.Show("请选择要生成实体的项目,再执行本命令。"); return; } var win = new MigerateDatabaseWizardWindow(); win.txtConnectionString.Text = @"server=.\SQLExpress;database=XXX;uid=XXX;pwd=XXX"; win.txtDomainName.Text = projects[0].Properties.Item("RootNamespace").Value.ToString(); var res = win.ShowDialog(); if (res == true) { var connectionString = win.txtConnectionString.Text; var domainName = win.txtDomainName.Text; //构造实体代码生成器。 var generator = new CodeFileGenerator(); generator.DomainName = domainName; generator.DbSetting = DbSetting.SetSetting( domainName, connectionString, DbSetting.Provider_SqlClient//目前只支持 SqlServer。 ); //默认生成在 Entities 文件夹内。 var items = projects[0].ProjectItems; generator.Directory = items.FindByName("Entities") ?? items.AddFolder("Entities"); generator.RepoDirectory = items.FindByName("Repositories") ?? items.AddFolder("Repositories"); //开始生成代码。 try { var error = generator.Generate(); var msg = string.Format("生成完毕,本次一共生成了 {0} 张表。", generator.SuccessCount); if (!string.IsNullOrEmpty(error)) { msg += Environment.NewLine + "无法移植的表:" + Environment.NewLine + error; } MessageBox.Show(msg); } catch (Exception ex) { MessageBox.Show(ex.Message); } } }