public GenResult Gen(params object[] sqlElements) { GenResult gr; gr = new GenResult(GenResultTypes.Files); gr.Files = new List <KeyValuePair <string, byte[]> >(); string ns; DialogResult dr; using (FGen_Database_Config fgs = new FGen_Database_Config(_db)) { dr = fgs.ShowDialog(); } if (dr != DialogResult.OK) { //gr = new GenResult(GenResultTypes.Message); //gr.Message = null; //return gr; } ns = Utils._CurrrentDALGenSetting_CurrentScheme.Namespace; //isSupportWCF = Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportWCF; Utils.SchemaSplitter = Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportSchema ? "_" : null; gr = new GenResult(GenResultTypes.Files); gr.Files = new List <KeyValuePair <string, byte[]> >(); using (FOutputText fw = new FOutputText("代码生成中,请稍后...", "", 350, 500, true)) { fw.Show(); fw.Activate(); foreach (KeyValuePair <string, byte[]> key in Gen_Database_Default_XAML.Gen(_db, ns)) { gr.Files.Add(key); } foreach (KeyValuePair <string, byte[]> keyvalue in Gen_Database_Default_CS.Gen(_db, ns)) { gr.Files.Add(keyvalue); } } return(gr); }
public GenResult Gen(params object[] sqlElements) { GenResult gr; if (_isPopupConfigForm) { DialogResult dr; using (FGen_Database_DAL_Config cfg = new FGen_Database_DAL_Config(_db, _currentSchemeID)) { dr = cfg.ShowDialog(); } if (dr != DialogResult.OK) { gr = new GenResult(GenResultTypes.Message); gr.Message = null; return(gr); } } Utils.LoadDatabaseDALGenSettingDS(_db, _currentSchemeID); string ns = Utils._CurrrentDALGenSetting_CurrentScheme.Namespace; // 只要有任意的数据操作方法需要生成, 即生成 DC 对象根 bool isSupportDC = Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportDB_Table || Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportDB_View || Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportDB_Function || Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportDB_SP || Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportOB_View || Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportOB_Table || Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportOB_Function || Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportOB_SP; // 只要有 DB, OB 其中之一需要生成, 即生成相应 DC 对象 bool isSupportDC_Table = Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportDB_Table || Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportOB_Table; bool isSupportDC_View = Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportDB_View || Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportOB_View; bool isSupportDC_Function = Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportDB_Function || Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportOB_Function; bool isSupportDC_SP = Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportDB_SP || Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportOB_SP; gr = new GenResult(GenResultTypes.Files); gr.Files = new List <KeyValuePair <string, byte[]> >(); using (FOutputText fw = new FOutputText("Gening...Plz Wait...", "", 350, 500, true)) { fw.Text = "Generate Information"; fw.Show(); fw.Activate(); fw.Write("Analysing"); fw.Write(Color.Blue, "Prefetch"); fw.WriteLine("..."); #region Prefetch ScriptingOptions option = new ScriptingOptions(); option.ExtendedProperties = true; try { _db.PrefetchObjects(typeof(Microsoft.SqlServer.Management.Smo.StoredProcedure), option); } catch { } try { _db.PrefetchObjects(typeof(Microsoft.SqlServer.Management.Smo.UserDefinedFunction), option); } catch { } try { _db.PrefetchObjects(typeof(Microsoft.SqlServer.Management.Smo.View), option); } catch { } try { _db.PrefetchObjects(typeof(Microsoft.SqlServer.Management.Smo.Table), option); } catch { } try { _db.PrefetchObjects(typeof(Microsoft.SqlServer.Management.Smo.UserDefinedType), option); } catch { } if (_db.CompatibilityLevel >= CompatibilityLevel.Version100) { try { _db.PrefetchObjects(typeof(Microsoft.SqlServer.Management.Smo.UserDefinedTableType), option); } catch { } } #endregion fw.WriteLine(Color.OrangeRed, "Done!"); fw.Write("Generating"); fw.Write(Color.Blue, " Database Informatin"); fw.WriteLine("..."); gr.Files.Add(new KeyValuePair <string, byte[]>("DI.cs", Encoding.UTF8.GetBytes( Gen_DI.Gen(_db, ns, "DS2") ))); fw.WriteLine(Color.OrangeRed, "Done!"); if (_db.CompatibilityLevel >= CompatibilityLevel.Version100) { fw.Write("Generating"); fw.Write(Color.Blue, "UserDefinedTableType Information"); fw.WriteLine("..."); gr.Files.Add(new KeyValuePair <string, byte[]>("DI2.cs", Encoding.UTF8.GetBytes( Gen_DI2.Gen(_db, ns, "DI2") ))); fw.WriteLine(Color.OrangeRed, "Done!"); fw.Write("Generating"); fw.Write(Color.Blue, "UserDefinedTableType DataSet Declare"); fw.WriteLine("..."); gr.Files.Add(new KeyValuePair <string, byte[]>("DS2.cs", Encoding.UTF8.GetBytes( Gen_DS2.Gen(_db, ns, "DS2") ))); fw.WriteLine(Color.OrangeRed, "Done!"); fw.Write("Generating"); fw.Write(Color.Blue, "UserDefinedTableType Object Class Declare"); fw.WriteLine("..."); gr.Files.Add(new KeyValuePair <string, byte[]>("OO2.cs", Encoding.UTF8.GetBytes( Gen_OO2.Gen(_db, ns, Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportWCF, "DS2") ))); fw.WriteLine(Color.OrangeRed, "Done!"); } if (Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportDS) { fw.Write("Generating"); fw.Write(Color.Blue, "DataSet"); fw.WriteLine("..."); gr.Files.Add(new KeyValuePair <string, byte[]>("DS.cs", Encoding.UTF8.GetBytes( Gen_DS.Gen(_db, ns, "DS") ))); fw.WriteLine(Color.OrangeRed, "Done!"); } if (isSupportDC) { fw.Write("Generating"); fw.Write(Color.Blue, "Data Command"); fw.WriteLine("..."); gr.Files.Add(new KeyValuePair <string, byte[]>("DC.cs", Encoding.UTF8.GetBytes( Gen_DC.Gen(_db, ns) ))); if (isSupportDC_Table) { gr.Files.Add(new KeyValuePair <string, byte[]>("DC_Table.cs", Encoding.UTF8.GetBytes( Gen_DC_Table.Gen(_db, ns) ))); } if (isSupportDC_View) { gr.Files.Add(new KeyValuePair <string, byte[]>("DC_View.cs", Encoding.UTF8.GetBytes( Gen_DC_View.Gen(_db, ns) ))); } if (isSupportDC_Function) { gr.Files.Add(new KeyValuePair <string, byte[]>("DC_Function.cs", Encoding.UTF8.GetBytes( Gen_DC_Function.Gen(_db, ns) ))); } if (isSupportDC_SP) { gr.Files.Add(new KeyValuePair <string, byte[]>("DC_StoredProcedure.cs", Encoding.UTF8.GetBytes( Gen_DC_StoredProcedure.Gen(_db, ns) ))); } fw.WriteLine(Color.OrangeRed, "Done!"); } if (Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportDB_Table || Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportDB_View || Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportDB_Function || Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportDB_SP) { fw.Write("Generating"); fw.Write(Color.Blue, "DataSet Business"); fw.WriteLine("..."); gr.Files.Add(new KeyValuePair <string, byte[]>("DB.cs", Encoding.UTF8.GetBytes( Gen_DB.Gen(_db, ns, "DS", "DS2") ))); if (Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportDB_Table) { gr.Files.Add(new KeyValuePair <string, byte[]>("DB_Table.cs", Encoding.UTF8.GetBytes( Gen_DB_Table.Gen(_db, ns, "DS", "DS2") ))); } if (Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportDB_View) { gr.Files.Add(new KeyValuePair <string, byte[]>("DB_View.cs", Encoding.UTF8.GetBytes( Gen_DB_View.Gen(_db, ns, "DS", "DS2") ))); } if (Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportDB_Function) { gr.Files.Add(new KeyValuePair <string, byte[]>("DB_Function.cs", Encoding.UTF8.GetBytes( Gen_DB_Function.Gen(_db, ns, "DS", "DS2") ))); } if (Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportDB_SP) { gr.Files.Add(new KeyValuePair <string, byte[]>("DB_StoredProcedure.cs", Encoding.UTF8.GetBytes( Gen_DB_StoredProcedure.Gen(_db, ns, "DS", "DS2") ))); } fw.WriteLine(Color.OrangeRed, "Done!"); } if (Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportOO) { fw.Write("Generating"); fw.Write(Color.Blue, "Object Class Declare"); fw.WriteLine("..."); gr.Files.Add(new KeyValuePair <string, byte[]>("OO.cs", Encoding.UTF8.GetBytes( Gen_OO.Gen(_db, ns, Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportWCF) ))); fw.WriteLine(Color.OrangeRed, "Done!"); } if (Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportOB_Table || Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportOB_View || Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportOB_Function || Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportOB_SP) { fw.Write("Generating"); fw.Write(Color.Blue, "Object Business"); fw.WriteLine("..."); gr.Files.Add(new KeyValuePair <string, byte[]>("OB.cs", Encoding.UTF8.GetBytes( Gen_OB.Gen(_db, ns, "OO2") ))); if (Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportOB_Table) { gr.Files.Add(new KeyValuePair <string, byte[]>("OB_Table.cs", Encoding.UTF8.GetBytes( Gen_OB_Table.Gen(_db, ns, "OO2") ))); } if (Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportOB_View) { gr.Files.Add(new KeyValuePair <string, byte[]>("OB_View.cs", Encoding.UTF8.GetBytes( Gen_OB_View.Gen(_db, ns, "OO2") ))); } if (Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportOB_Function) { gr.Files.Add(new KeyValuePair <string, byte[]>("OB_Function.cs", Encoding.UTF8.GetBytes( Gen_OB_Function.Gen(_db, ns, "OO2") ))); } if (Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportOB_SP) { gr.Files.Add(new KeyValuePair <string, byte[]>("OB_StoredProcedure.cs", Encoding.UTF8.GetBytes( Gen_OB_StoredProcedure.Gen(_db, ns, "OO2") ))); } fw.WriteLine(Color.OrangeRed, "Done!"); } if (isSupportDC) { fw.Write("Generating"); fw.Write(Color.Blue, "Object Expression"); fw.WriteLine("..."); gr.Files.Add(new KeyValuePair <string, byte[]>("OE.cs", Encoding.UTF8.GetBytes( Gen_OE.Gen(_db, ns) ))); if (isSupportDC_Table) { gr.Files.Add(new KeyValuePair <string, byte[]>("OE_Table.cs", Encoding.UTF8.GetBytes( Gen_OE_Table.Gen(_db, ns) ))); } if (isSupportDC_View) { gr.Files.Add(new KeyValuePair <string, byte[]>("OE_View.cs", Encoding.UTF8.GetBytes( Gen_OE_View.Gen(_db, ns) ))); } if (isSupportDC_Function) { gr.Files.Add(new KeyValuePair <string, byte[]>("OE_Function.cs", Encoding.UTF8.GetBytes( Gen_OE_Function.Gen(_db, ns) ))); } fw.WriteLine(Color.OrangeRed, "Done!"); } if (Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportOB_Extend) { fw.Write("Generating"); fw.Write(Color.Blue, "Object Business Extension( .net 3.5+ )"); fw.WriteLine("..."); gr.Files.Add(new KeyValuePair <string, byte[]>("OB_Extend.cs", Encoding.UTF8.GetBytes( Gen_OB_Extend.Gen(_db, ns) ))); if (Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportOB_Table) { gr.Files.Add(new KeyValuePair <string, byte[]>("OB_Extend_Table.cs", Encoding.UTF8.GetBytes( Gen_OB_Extend_Table.Gen(_db, ns) ))); } if (Utils._CurrrentDALGenSetting_CurrentScheme.IsSupportOB_View) { gr.Files.Add(new KeyValuePair <string, byte[]>("OB_Extend_View.cs", Encoding.UTF8.GetBytes( Gen_OB_Extend_View.Gen(_db, ns) ))); } fw.WriteLine(Color.OrangeRed, "Done!"); } fw.Write("Generating"); fw.Write(Color.Blue, "SQLHelper"); fw.WriteLine("..."); gr.Files.Add(new KeyValuePair <string, byte[]>("SQLHelper.cs", Encoding.UTF8.GetBytes( Gen_SQLHelper.Gen(ns) ))); fw.WriteLine(Color.OrangeRed, "Done!"); fw.WriteLine(); fw.WriteLine(Color.Red, "All Done!"); } //gr = new GenResult(GenResultTypes.CodeSegment); //gr.CodeSegment = new KeyValuePair<string, string>(this.Tips, t.Name + " gen finished!"); return(gr); }