Beispiel #1
0
        /// <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();
        }
Beispiel #2
0
        /// <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();
        }