/// <summary> /// 创建Model类 /// </summary> /// <param name="dataTable">表对象</param> /// <param name="path">类文件路径</param> internal static void CreateModelClass(DataTable dataTable, string tablemark, string path) { string className = dataTable.TableName.ToString() + "Entity"; string targetNamespace = "Taotaole.Model"; //创建类文件 StreamWriter streamWriter = new StreamWriter(path + className + ".cs"); // 创建 class头 streamWriter.WriteLine("using System;"); streamWriter.WriteLine("using System.Data;"); streamWriter.WriteLine("using System.Collections;"); streamWriter.WriteLine(); streamWriter.WriteLine("namespace " + targetNamespace + " {"); streamWriter.WriteLine("\t/// <summary>"); streamWriter.WriteLine("\t/// " + tablemark + "-实体类");//管理员-实体类 streamWriter.WriteLine("\t/// </summary>"); streamWriter.WriteLine("\t[Serializable]"); streamWriter.WriteLine("\tpublic class " + className + " {"); streamWriter.WriteLine(); //定义每列数据库字段名 streamWriter.WriteLine("\t\t#region 字段名"); for (int i = 0; i < dataTable.Columns.Count; i++) { DataColumn column = dataTable.Columns[i]; streamWriter.WriteLine("\t\tpublic static string Field" + Utility.FormatPascal(column.ColumnName) + " = \"" + Utility.FormatPascal(column.ColumnName) + "\";"); } streamWriter.WriteLine("\t\t#endregion"); streamWriter.WriteLine(); //为每列创建属性 streamWriter.WriteLine("\t\t#region 属性"); string privateName, publicName; for (int i = 0; i < dataTable.Columns.Count; i++) { DataColumn column = dataTable.Columns[i]; privateName = "_" + Utility.FormatCamel(column.ColumnName); publicName = Utility.FormatPascal(column.ColumnName); streamWriter.WriteLine("\t\tprivate " + Utility.GetClassType(column.DataType.Name) + " " + privateName + ";"); streamWriter.WriteLine("\t\tpublic " + Utility.GetClassType(column.DataType.Name) + " " + publicName); streamWriter.WriteLine("\t\t{"); streamWriter.WriteLine("\t\t\tget{ return " + privateName + ";}"); streamWriter.WriteLine("\t\t\tset{ " + privateName + "=value;}"); streamWriter.WriteLine("\t\t}"); } streamWriter.WriteLine("\t\t#endregion"); streamWriter.WriteLine(); //添加构造函数 streamWriter.WriteLine("\t\t#region 构造函数"); streamWriter.WriteLine("\t\tpublic " + className + "(){}"); streamWriter.WriteLine(); streamWriter.WriteLine("\t\tpublic " + className + "(DataRow dr)"); streamWriter.WriteLine("\t\t{"); for (int i = 0; i < dataTable.Columns.Count; i++) { DataColumn column = dataTable.Columns[i]; streamWriter.WriteLine("\t\t\tif (dr[Field" + Utility.FormatPascal(column.ColumnName) + "] != DBNull.Value)"); streamWriter.WriteLine("\t\t\t{"); streamWriter.WriteLine("\t\t\t_" + Utility.FormatCamel(column.ColumnName) + " = (" + Utility.GetClassType(column.DataType.Name) + ")dr[Field" + Utility.FormatPascal(column.ColumnName) + "];"); streamWriter.WriteLine("\t\t\t}"); } streamWriter.WriteLine("\t\t}"); streamWriter.WriteLine("\t\t#endregion"); streamWriter.WriteLine(); streamWriter.WriteLine("\t}"); //创建集合类 //CreateCollectionClass(table, streamWriter); streamWriter.WriteLine("}"); streamWriter.Flush(); streamWriter.Close(); }
/// <summary> /// 创建Module类 /// </summary> /// <param name="table">表对象</param> /// <param name="storedProcedurePrefix">存储过程前缀</param> /// <param name="path">类文件路径</param> internal static void CreateComponentClass(Table table, string targetNamespace, string storedProcedurePrefix, string path) { // string className = Utility.FormatPascal(table.Name); string className = Utility.FormatPascal(table.ProgrammaticAlias); //创建类文件 StreamWriter streamWriter = new StreamWriter(path + className + ".cs"); // 创建 class头 streamWriter.WriteLine("using System;"); streamWriter.WriteLine("using System.Data;"); streamWriter.WriteLine("using System.Collections;"); streamWriter.WriteLine(); if (targetNamespace.Length > 0) { streamWriter.WriteLine("namespace " + targetNamespace + ".Component {"); } else { streamWriter.WriteLine("namespace Component {"); } streamWriter.WriteLine("\t/// <summary>"); streamWriter.WriteLine("\t/// " + className + "类"); streamWriter.WriteLine("\t/// </summary>"); streamWriter.WriteLine("\t[Serializable]"); streamWriter.WriteLine("\tpublic class " + className + " {"); streamWriter.WriteLine(); //定义每列数据库字段名 streamWriter.WriteLine("\t\t#region 字段名"); for (int i = 0; i < table.Columns.Count; i++) { Column column = (Column)table.Columns[i]; streamWriter.WriteLine("\t\tpublic static string Field" + Utility.FormatPascal(column.ProgrammaticAlias) + " = \"" + Utility.FormatPascal(column.ProgrammaticAlias) + "\";"); } streamWriter.WriteLine("\t\t#endregion"); streamWriter.WriteLine(); //为每列创建属性 streamWriter.WriteLine("\t\t#region 属性"); string privateName, publicName; for (int i = 0; i < table.Columns.Count; i++) { Column column = (Column)table.Columns[i]; privateName = "_" + Utility.FormatCamel(column.ProgrammaticAlias); publicName = Utility.FormatPascal(column.ProgrammaticAlias); streamWriter.WriteLine("\t\tprivate " + Utility.GetClassType(column.Type) + " " + privateName + ";"); streamWriter.WriteLine("\t\tpublic " + Utility.GetClassType(column.Type) + " " + publicName); streamWriter.WriteLine("\t\t{"); streamWriter.WriteLine("\t\t\tget{ return " + privateName + ";}"); streamWriter.WriteLine("\t\t\tset{ " + privateName + "=value;}"); streamWriter.WriteLine("\t\t}"); } streamWriter.WriteLine("\t\t#endregion"); streamWriter.WriteLine(); //添加构造函数 streamWriter.WriteLine("\t\t#region 构造函数"); streamWriter.WriteLine("\t\tpublic " + className + "(){}"); streamWriter.WriteLine(); streamWriter.WriteLine("\t\tpublic " + className + "(DataRow dr)"); streamWriter.WriteLine("\t\t{"); for (int i = 0; i < table.Columns.Count; i++) { Column column = (Column)table.Columns[i]; streamWriter.WriteLine("\t\t\tif (dr[Field" + Utility.FormatPascal(column.ProgrammaticAlias) + "] != DBNull.Value)"); streamWriter.WriteLine("\t\t\t{"); streamWriter.WriteLine("\t\t\t\t_" + Utility.FormatCamel(column.ProgrammaticAlias) + " = (" + Utility.GetClassType(column.Type) + ")dr[Field" + Utility.FormatPascal(column.ProgrammaticAlias) + "];"); streamWriter.WriteLine("\t\t\t}"); } streamWriter.WriteLine("\t\t}"); streamWriter.WriteLine("\t\t#endregion"); streamWriter.WriteLine(); // Close out the class and namespace streamWriter.WriteLine("\t}"); //创建集合类 CreateCollectionClass(table, streamWriter); streamWriter.WriteLine("}"); // Flush and close the stream streamWriter.Flush(); streamWriter.Close(); }