コード例 #1
0
        /// <summary>
        /// 得到工厂层代码
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public string GetFactoryClass(CodeCreate param)
        {
            Servers server = Common.Config.GetServer(param.ServerID);

            if (server == null)
            {
                return(string.Empty);
            }
            List <Fields> fields = databaseInstance.GetFields(server.ID, param.DbName, param.TableName);

            StringBuilder factory = new StringBuilder(import.GetImport_Factory());

            factory.Append("namespace " + param.NameSpace + (string.IsNullOrEmpty(param.NameSpace) ? "" : ".") + param.CNSC.Factory + (string.IsNullOrEmpty(param.NameSpace1) ? "" : "." + param.NameSpace1) + "\r\n");
            factory.Append("{\r\n");

            factory.Append("\tpublic class " + param.ClassName + "\r\n");
            factory.Append("\t{\r\n");
            factory.Append("\t\t/// <summary>\r\n");
            factory.Append("\t\t/// 创建实例对象\r\n");
            factory.Append("\t\t/// </summary>\r\n");
            factory.Append("\t\tpublic static " + param.NameSpace + (string.IsNullOrEmpty(param.NameSpace) ? "" : ".") + param.CNSC.Interface + (string.IsNullOrEmpty(param.NameSpace1) ? "" : "." + param.NameSpace1) + ".I" + param.ClassName + " CreateInstance()\r\n");;
            factory.Append("\t\t{\r\n");
            factory.Append("\t\t\treturn Factory.CreateInstance(\"" + param.ClassName + "\") as " + param.CNSC.Interface + ".I" + param.ClassName + ";\r\n");
            factory.Append("\t\t}\r\n");
            factory.Append("\t}\r\n");
            factory.Append("}\r\n");

            return(factory.ToString());
        }
コード例 #2
0
ファイル: Builder_Model.cs プロジェクト: wenha/CodeMaker
        /// <summary>
        /// 得到实体层
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public string GetModelClass(CodeCreate param)
        {
            Servers server = Config.GetServer(param.ServerID);

            if (server == null)
            {
                return(string.Empty);
            }

            List <Fields> fields = databaseInstance.GetFields(server.ID, param.DbName, param.TableName);
            StringBuilder model  = new StringBuilder(import.GetImport_Model());

            model.Append("namespace " + param.NameSpace + (string.IsNullOrEmpty(param.NameSpace) ? "" : ".") + param.CNSC.Model + (string.IsNullOrEmpty(param.NameSpace1) ? "" : "." + param.NameSpace1) + "\r\n");
            model.Append("{\r\n");
            model.Append("\t[Serializable]\r\n");
            model.Append("\tpublic class " + param.ClassName + "\r\n");
            model.Append("\t{\r\n");
            foreach (var field in fields)
            {
                model.Append("\t\t/// <summary>\r\n");
                model.Append("\t\t/// " + (string.IsNullOrEmpty(field.Note) ? field.Name : field.Note) + "\r\n");
                model.Append("\t\t/// </summary>\r\n");
                model.Append("\t\t[DisplayName(\"" + (string.IsNullOrEmpty(field.Note) ? field.Name : field.Note) + "\")]\r\n");
                model.Append("\t\tpublic " + field.DotNetType + " " + field.Name + " { get; set; }\r\n\r\n");
            }
            model.Append("\t}\r\n");
            model.Append("}\r\n");
            return(model.ToString());
        }
コード例 #3
0
        public IActionResult Create(int id)
        {
            var model = new CodeCreate
            {
                DirectoryId = id,
            };

            return(View(model));
        }
コード例 #4
0
        public IActionResult Create(CodeCreate model)
        {
            if (ModelState.IsValid)
            {
                codeService.Create(model);
                return(RedirectToAction("Index", "Directory", new { id = model.DirectoryId }));
            }

            return(View(model));
        }
コード例 #5
0
        /// <summary>
        /// 生成代码条件
        /// </summary>
        /// <returns></returns>
        public CodeCreate GetCodeCreateSources()
        {
            TreeNode dbNode     = node.Parent.Parent;
            TreeNode serverNode = Home.form_Database.GetRoot(node);

            if (dbNode == null || serverNode == null)
            {
                return(null);
            }
            List <BuilderMethods> methods = new List <BuilderMethods>();

            if (checkBox_add.Checked)
            {
                methods.Add(BuilderMethods.Add);
            }
            if (checkBox_count.Checked)
            {
                methods.Add(BuilderMethods.Count);
            }
            if (checkBox_delete.Checked)
            {
                methods.Add(BuilderMethods.Delete);
            }
            if (checkBox_exists.Checked)
            {
                methods.Add(BuilderMethods.Exists);
            }
            if (checkBox_getall.Checked)
            {
                methods.Add(BuilderMethods.SelectAll);
            }
            if (checkBox_getbykey.Checked)
            {
                methods.Add(BuilderMethods.SelectByKey);
            }
            if (checkBox_update.Checked)
            {
                methods.Add(BuilderMethods.Update);
            }
            Servers    server = (Servers)((TreeNodeTag)serverNode.Tag).Tag;
            CodeCreate param  = new CodeCreate();

            param.ClassName    = this.textBox2.Text == null ? ((TreeNodeTag)node.Tag).Tag.ToString() : this.textBox2.Text.Trim();
            param.DbName       = ((TreeNodeTag)dbNode.Tag).Tag.ToString();
            param.NameSpace    = "";
            param.NameSpace1   = "";
            param.ServerID     = server.ID;
            param.TableName    = ((TreeNodeTag)node.Tag).Tag.ToString();
            param.BuilderType  = this.radioButton1.Checked ? BuilderType.Default : BuilderType.Factory;
            param.MethodList   = methods;
            param.CNSC         = new Config_NameSpaceClass().GetDefault();
            param.dataBaseType = server.Type;
            return(param);
        }
コード例 #6
0
        public void Create(CodeCreate model)
        {
            model.Id = null;
            var dbCode = mapper.Map <Code>(model);

            dbCode.CodeHashtags = ParseCodeHashtags <CodeHashtag>(model.Hashtag);
            foreach (var note in dbCode.Notes)
            {
                note.CodeNoteHashtags = ParseCodeHashtags <CodeNoteHashtag>(note.Hashtags);
            }

            context.Code.Add(dbCode);
            context.SaveChanges();
        }
コード例 #7
0
        private void GenerateEnums()
        {
            CodeCreate oCodeCreate = new CodeCreate();

            oCodeCreate.CreateNamespaceAndClass("CodeDOM",
                                                "MyClass",
                                                TypeAttributes.Public | TypeAttributes.Abstract);

            List <string> oList = new List <string>();

            oList.Add("Car");
            oList.Add("Bus");
            oList.Add("Limo");
            oList.Add("Tank");

            oCodeCreate.AddEnum("Vehicles", oList);

            oCodeCreate.GenerateCode(@"c:\temp\SampleCode.cs", "CSharp");
        }
コード例 #8
0
        private void GenerateCode()
        {
            CodeCreate oCodeCreate = new CodeCreate();

            oCodeCreate.CreateNamespaceAndClass("CodeDOM",
                                                "MyClass",
                                                TypeAttributes.Public | TypeAttributes.Abstract);

            oCodeCreate.AddConstructor();

            oCodeCreate.AddField(MemberAttributes.Private,
                                 "_szCustomerName",
                                 "Name of the customer",
                                 "System.String");

            oCodeCreate.AddField(MemberAttributes.Private,
                                 "_iSalesRepID",
                                 "Primary key ID of sales rep",
                                 "System.Int32");

            oCodeCreate.AddProperty(MemberAttributes.Public | MemberAttributes.Final,
                                    "CustomerName",
                                    "Comment goes here",
                                    "System.String",
                                    true,
                                    true,
                                    "_szCustomerName");

            oCodeCreate.AddMethod(MemberAttributes.Public,
                                  "DeleteCustomer",
                                  "Executes SQL that deletes a customer",
                                  "System.Void");

            oCodeCreate.GenerateCode(@"c:\temp\SampleCode.cs", "CSharp");

            MessageBox.Show(@"Code exported to c:\temp\SampleCode.cs");
        }
コード例 #9
0
        public void AutoCode()
        {
            try
            {
                #region 代码自动生成
                string        t          = "\t";
                string        tt         = t + t;
                string        ttt        = t + t + t;
                StringBuilder sw         = new StringBuilder();
                StringBuilder db         = new StringBuilder();
                TreeNode      dbNode     = node.Parent.Parent;
                TreeNode      serverNode = Home.form_Database.GetRoot(node);
                if (dbNode == null || serverNode == null)
                {
                    return;
                }
                Servers    server = (Servers)((TreeNodeTag)serverNode.Tag).Tag;
                CodeCreate param  = new CodeCreate();
                param.ClassName = ((TreeNodeTag)node.Tag).Tag.ToString();
                param.DbName    = ((TreeNodeTag)dbNode.Tag).Tag.ToString();
                param.ServerID  = server.ID;
                param.TableName = ((TreeNodeTag)node.Tag).Tag.ToString();
                string sql = " use " + param.DbName + "; select name,type_name(user_type_id)as typeid from sys.columns where  "
                             + " object_id=(select object_id from sys.tables where name='" + param.TableName + "') ";
                DataTable dt1 = Database.GetDataTable(sql, param.ServerID, param.DbName);
                #region 实体类
                #region 实体类头部
                sw.Append("using System;" + Environment.NewLine);
                sw.Append("using System.Collections.Generic;" + Environment.NewLine);
                sw.Append("using System.Linq;" + Environment.NewLine);
                sw.Append("using System.Text;" + Environment.NewLine);
                sw.Append("namespace " + getdaxie(param.DbName + Environment.NewLine));
                sw.Append(t + "{" + Environment.NewLine);
                sw.Append(tt + "public class " + param.TableName + Environment.NewLine);
                sw.Append(ttt + "{" + Environment.NewLine);
                #endregion
                #region 实体类主体生成
                foreach (DataRow line1 in dt1.Rows)
                {
                    sw.Append(ttt + "private " + Database.GetFieldSqlType(line1["typeid"].ToString()) + "  _" + getdaxie(line1["name"].ToString()) + ";" + Environment.NewLine);
                    sw.Append(ttt + "public " + Database.GetFieldSqlType(line1["typeid"].ToString()) + " " + getdaxie(line1["name"].ToString()) + Environment.NewLine);
                    sw.Append(ttt + "{" + Environment.NewLine);
                    sw.Append(ttt + t + "get { return _" + getdaxie(line1["name"].ToString()) + "; }" + Environment.NewLine);
                    sw.Append(ttt + t + " set { _" + getdaxie(line1["name"].ToString()) + " = value; }" + Environment.NewLine);
                    sw.Append(ttt + "}" + Environment.NewLine);
                }
                sw.Append(tt + "}" + Environment.NewLine);
                sw.Append(t + "}" + Environment.NewLine);
                #endregion
                #endregion
                #region DBHelp
                db.Append("using System;" + Environment.NewLine);
                db.Append("using System.Collections.Generic;" + Environment.NewLine);
                db.Append("using System.Linq;" + Environment.NewLine);
                db.Append("using System.Text;" + Environment.NewLine);
                db.Append("using System.Data;" + Environment.NewLine);
                db.Append("using System.Data.SqlClient;" + Environment.NewLine);
                db.Append("using System.Configuration;" + Environment.NewLine);
                db.Append("namespace " + getdaxie(param.TableName) + Environment.NewLine);
                db.Append(t + "{" + Environment.NewLine);
                db.Append(tt + "public class " + getdaxie("DBHelpe") + Environment.NewLine);
                db.Append(tt + "{" + Environment.NewLine);
                db.Append(ttt + "private static SqlConnection con;" + Environment.NewLine);
                db.Append(ttt + "/// <summary>" + Environment.NewLine);
                db.Append(ttt + " ///获得connection " + Environment.NewLine);
                db.Append(ttt + "/// </summary>" + Environment.NewLine);
                db.Append(ttt + "public static SqlConnection GetCon()" + Environment.NewLine);
                db.Append(ttt + "{" + Environment.NewLine);
                db.Append(ttt + t + "string connectionString = ConfigurationManager.ConnectionStrings[\"url\"].ConnectionString;" + Environment.NewLine);
                db.Append(ttt + t + "if (con == null)" + Environment.NewLine);
                db.Append(ttt + t + "{" + Environment.NewLine);
                db.Append(ttt + t + "con = new SqlConnection(connectionString);" + Environment.NewLine);
                db.Append(ttt + t + "}" + Environment.NewLine);
                db.Append(ttt + t + "return con;" + Environment.NewLine);
                db.Append(ttt + "}" + Environment.NewLine);
                db.Append(ttt + "/// <summary>" + Environment.NewLine);
                db.Append(ttt + "/// 执行增、删、改操作" + Environment.NewLine);
                db.Append(ttt + "/// </summary>" + Environment.NewLine);
                db.Append(ttt + "/// <param name=sql>SQL语句</param>" + Environment.NewLine);
                db.Append(ttt + "/// <returns>受影响行数</returns>" + Environment.NewLine);
                db.Append(ttt + "public static int ExecuteSql(string sql)" + Environment.NewLine);
                db.Append(ttt + "{" + Environment.NewLine);
                db.Append(ttt + t + "int i = -1;" + Environment.NewLine);
                db.Append(ttt + t + "SqlConnection con = DBHelpe.GetCon();" + Environment.NewLine);
                db.Append(ttt + t + "SqlCommand cmd = new SqlCommand(sql, con);" + Environment.NewLine);
                db.Append(ttt + t + "try" + Environment.NewLine);
                db.Append(ttt + t + "{" + Environment.NewLine);
                db.Append(ttt + tt + "con.Open();" + Environment.NewLine);
                db.Append(ttt + tt + "i = cmd.ExecuteNonQuery();" + Environment.NewLine);
                db.Append(ttt + t + "}" + Environment.NewLine);
                db.Append(ttt + t + "catch (Exception err)" + Environment.NewLine);
                db.Append(ttt + t + "{" + Environment.NewLine);
                db.Append(ttt + tt + "throw err;" + Environment.NewLine);
                db.Append(ttt + t + "}" + Environment.NewLine);
                db.Append(ttt + t + "finally" + Environment.NewLine);
                db.Append(ttt + t + "{" + Environment.NewLine);
                db.Append(ttt + tt + "if (con.State == ConnectionState.Open)" + Environment.NewLine);
                db.Append(ttt + tt + "{" + Environment.NewLine);
                db.Append(ttt + tt + "con.Close();" + Environment.NewLine);
                db.Append(ttt + tt + "}" + Environment.NewLine);
                db.Append(ttt + t + "}" + Environment.NewLine);
                db.Append(ttt + t + "return i;" + Environment.NewLine);
                db.Append(ttt + "}" + Environment.NewLine);
                db.Append(ttt + "/// <summary>" + Environment.NewLine);
                db.Append(ttt + "/// 根据SQL返回DataTable" + Environment.NewLine);
                db.Append(ttt + "/// </summary>" + Environment.NewLine);
                db.Append(ttt + "/// <param name=sql>执行的SQL</param>" + Environment.NewLine);
                db.Append(ttt + "/// <returns>DataTable</returns>" + Environment.NewLine);
                db.Append(ttt + "public static DataTable GetTable(string sql)" + Environment.NewLine);
                db.Append(ttt + "{" + Environment.NewLine);
                db.Append(ttt + t + "DataTable dt =new DataTable();" + Environment.NewLine);
                db.Append(ttt + t + "SqlConnection con = DBHelpe.GetCon();" + Environment.NewLine);
                db.Append(ttt + t + "try" + Environment.NewLine);
                db.Append(ttt + t + "{" + Environment.NewLine);
                db.Append(ttt + tt + "con.Open();" + Environment.NewLine);
                db.Append(ttt + tt + "SqlCommand cmd = new SqlCommand(sql, con);" + Environment.NewLine);
                db.Append(ttt + tt + "SqlDataAdapter da = new SqlDataAdapter(cmd);" + Environment.NewLine);
                db.Append(ttt + tt + "da.Fill(dt);" + Environment.NewLine);
                db.Append(ttt + t + "}" + Environment.NewLine);
                db.Append(ttt + t + "catch (Exception err)" + Environment.NewLine);
                db.Append(ttt + t + "{" + Environment.NewLine);
                db.Append(ttt + tt + "throw err;" + Environment.NewLine);
                db.Append(ttt + t + "}" + Environment.NewLine);
                db.Append(ttt + t + "finally" + Environment.NewLine);
                db.Append(ttt + t + "{" + Environment.NewLine);
                db.Append(ttt + tt + "if (con.State == ConnectionState.Open)" + Environment.NewLine);
                db.Append(ttt + tt + "{" + Environment.NewLine);
                db.Append(ttt + ttt + "con.Close();" + Environment.NewLine);
                db.Append(ttt + tt + "}" + Environment.NewLine);
                db.Append(ttt + t + "}" + Environment.NewLine);
                db.Append(ttt + t + "return dt;" + Environment.NewLine);
                db.Append(ttt + "}" + Environment.NewLine);
                db.Append(ttt + "/// <summary>" + Environment.NewLine);
                db.Append(ttt + "/// 执行SQL返回SqlDataReader" + Environment.NewLine);
                db.Append(ttt + "/// </summary>" + Environment.NewLine);
                db.Append(ttt + "/// <param name=sql>执行的SQL</param>" + Environment.NewLine);
                db.Append(ttt + "/// <returns>SqlDataReader</returns>" + Environment.NewLine);
                db.Append(ttt + "public static SqlDataReader ExReader(string sql)" + Environment.NewLine);
                db.Append(ttt + "{" + Environment.NewLine);
                db.Append(ttt + t + "SqlConnection con = DBHelpe.GetCon();" + Environment.NewLine);
                db.Append(ttt + t + "try" + Environment.NewLine);
                db.Append(ttt + t + "{" + Environment.NewLine);
                db.Append(ttt + tt + "con.Open();" + Environment.NewLine);
                db.Append(ttt + tt + "SqlCommand cmd = new SqlCommand(sql, con);" + Environment.NewLine);
                db.Append(ttt + tt + "SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);" + Environment.NewLine);
                db.Append(ttt + tt + "return dr;" + Environment.NewLine);
                db.Append(ttt + t + "}" + Environment.NewLine);
                db.Append(ttt + t + "catch(Exception err)" + Environment.NewLine);
                db.Append(ttt + t + "{" + Environment.NewLine);
                db.Append(ttt + tt + "throw err;" + Environment.NewLine);
                db.Append(ttt + t + "}" + Environment.NewLine);
                db.Append(ttt + "}" + Environment.NewLine);
                //****************************************************************
                db.Append(t + "}" + Environment.NewLine);
                db.Append("}" + Environment.NewLine);
                #endregion

                Form_Code_Area fca_model = new Form_Code_Area(sw.ToString(), string.Format("实体类({0})", param.TableName));
                fca_model.Show(Home.Instance.dockPanel1);
                Form_Code_Area fca_data = new Form_Code_Area(db.ToString(), string.Format("数据类({0})", param.TableName));
                fca_data.Show(Home.Instance.dockPanel1);
                #endregion
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }
            this.Close();
        }
コード例 #10
0
        private void CreateToDir()
        {
            List <TreeNode> NodeList = Main.form_DataBase.GetTreeViewSelected();

            if (NodeList.Count == 0)
            {
                return;
            }
            TreeNode serverNode = Main.form_DataBase.GetRoot(NodeList.First());
            TreeNode dbNode     = NodeList.First().Parent.Parent;

            List <BuilderMethods> methods = new List <BuilderMethods>();

            if (configDir_cb_Add.Checked)
            {
                methods.Add(BuilderMethods.Add);
            }
            if (configDir_cb_GetAll.Checked)
            {
                methods.Add(BuilderMethods.SelectAll);
            }
            Servers server = (Servers)((TreeNodeTag)serverNode.Tag).Tag;

            Business.CreateCode CreateCode = new Business.CreateCode(server.Type);
            CodeCreate          param      = new CodeCreate();

            param.DbName      = ((TreeNodeTag)dbNode.Tag).Tag.ToString();
            param.NameSpace   = "";
            param.NameSpace1  = "";
            param.ServerID    = server.ID;
            param.BuilderType = BuilderType.Default;
            param.MethodList  = methods;
            param.CNSC        = new Config_NameSpaceClass().GetDefault();

            Business.CreateCode CreateCodeInstince = new Business.CreateCode(server.Type);
            StreamWriter        sw;
            string FileName = string.Empty;

            foreach (TreeNode node in NodeList)
            {
                param.TableName = ((TreeNodeTag)node.Tag).Tag.ToString();
                param.ClassName = param.TableName;

                //生成实体类
                FileName = Func.ExistsDirectory(string.Format("{0}\\{1}.{2}\\{3}{4}.cs", configDir_tb_OutputDir.Text, param.NameSpace, param.CNSC.Model, param.NameSpace1.IsNullOrEmpty() ? "" : param.NameSpace1 + "\\", param.ClassName));
                sw       = File.CreateText(FileName);
                sw.Write(CreateCodeInstince.GetModelClass(param));
                sw.Close();
                sw.Dispose();
                configDir_label_progress.Text = string.Format("生成文件:{0}", FileName);

                //生成数据类
                FileName = Func.ExistsDirectory(string.Format("{0}\\{1}.{2}\\{3}{4}.cs", configDir_tb_OutputDir.Text, param.NameSpace, param.CNSC.Data, param.NameSpace1.IsNullOrEmpty() ? "" : param.NameSpace1 + "\\", param.ClassName));
                sw       = File.CreateText(FileName);
                sw.Write(CreateCodeInstince.GetDataClass(param));
                sw.Close();
                sw.Dispose();
                configDir_label_progress.Text = string.Format("生成文件:{0}", FileName);

                //生成业务类
                FileName = Func.ExistsDirectory(string.Format("{0}\\{1}.{2}\\{3}{4}.cs", configDir_tb_OutputDir.Text, param.NameSpace, param.CNSC.Business, param.NameSpace1.IsNullOrEmpty() ? "" : param.NameSpace1 + "\\", param.ClassName));
                sw       = File.CreateText(FileName);
                sw.Write(CreateCodeInstince.GetBusinessClass(param));
                sw.Close();
                sw.Dispose();
                configDir_label_progress.Text = string.Format("生成文件:{0}", FileName);

                if (param.BuilderType == BuilderType.Factory)
                {
                    //生成接口类
                    FileName = Func.ExistsDirectory(string.Format("{0}\\{1}.{2}\\{3}{4}.cs", configDir_tb_OutputDir.Text, param.NameSpace, param.CNSC.Interface, param.NameSpace1.IsNullOrEmpty() ? "" : param.NameSpace1 + "\\", param.ClassName));
                    sw       = File.CreateText(FileName);
                    sw.Write(CreateCodeInstince.GetInterfaceClass(param));
                    sw.Close();
                    sw.Dispose();
                    configDir_label_progress.Text = string.Format("生成文件:{0}", FileName);

                    //生成工厂类
                    FileName = Func.ExistsDirectory(string.Format("{0}\\{1}.{2}\\{3}{4}.cs", configDir_tb_OutputDir.Text, param.NameSpace, param.CNSC.Factory, param.NameSpace1.IsNullOrEmpty() ? "" : param.NameSpace1 + "\\", param.ClassName));
                    sw       = File.CreateText(FileName);
                    sw.Write(CreateCodeInstince.GetFactoryClass(param));
                    sw.Close();
                    sw.Dispose();
                    configDir_label_progress.Text = string.Format("生成文件:{0}", FileName);
                }
            }
            MessageBox.Show("生成完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            this.configDir_label_progress.Text = "生成已完成";
            this.configDir_btn_Build.Enabled   = true;
        }
コード例 #11
0
ファイル: Builder_Data.cs プロジェクト: wenha/CodeMaker
        /// <summary>
        /// 得到数据层代码
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public string GetDataClass(CodeCreate param)
        {
            Servers server = Config.GetServer(param.ServerID);

            if (server == null)
            {
                return(string.Empty);
            }
            List <Fields> fields = databaseInstance.GetFields(server.ID, param.DbName, param.TableName);
            StringBuilder data   = new StringBuilder(import.GetImport_Data());

            data.Append("namespace " + param.NameSpace + (string.IsNullOrEmpty(param.NameSpace) ? "" : ".") + param.CNSC.Data + (string.IsNullOrEmpty(param.NameSpace1) ? "" : "." + param.NameSpace1) + "\r\n");
            data.Append("{\r\n");
            data.Append("\tpublic class " + param.ClassName + (param.BuilderType == BuilderType.Factory ? " : " + param.NameSpace + (string.IsNullOrEmpty(param.NameSpace) ? "" : ".") + param.CNSC.Interface + (string.IsNullOrEmpty(param.NameSpace1) ? "" : "." + param.NameSpace1) + ".I" + param.ClassName : "") + "\r\n");
            data.Append("\t{\r\n");
            data.Append("\t\tprivate DBHelper dbHelper = new DBHelper();\r\n");
            data.Append("\t\t/// <summary>\r\n");
            data.Append("\t\t/// 构造函数\r\n");
            data.Append("\t\t/// </summary>\r\n");
            data.Append("\t\tpublic " + param.ClassName + "()\r\n");
            data.Append("\t\t{\r\n");
            data.Append("\t\t}\r\n");


            //新增记录
            if (param.MethodList.Contains(BuilderMethods.Add))
            {
                data.Append(GetAddMethod(fields, param));
            }

            //更新记录
            if (param.MethodList.Contains(BuilderMethods.Update) && fields.Any(p => p.IsPrimaryKey))
            {
                data.Append(GetUpdateMethod(fields, param));
            }

            //删除记录
            if (param.MethodList.Contains(BuilderMethods.Delete) && fields.Any(p => p.IsPrimaryKey))
            {
                data.Append(GetDeleteMethod(fields, param));
            }

            //转换List
            data.Append(GetConvertDataReaderToListMethod(fields, param));

            //查询所有记录
            if (param.MethodList.Contains(BuilderMethods.SelectAll))
            {
                data.Append(GetAllMethod(fields, param));
            }

            //查询记录数
            if (param.MethodList.Contains(BuilderMethods.Count))
            {
                data.Append(GetCountMethod(fields, param));
            }

            //查询主键记录
            if (param.MethodList.Contains(BuilderMethods.SelectByKey) && fields.Any(p => p.IsPrimaryKey))
            {
                data.Append(GetByKeyMethod(fields, param));
            }

            data.Append("\t}\r\n");
            data.Append("}");
            return(data.ToString());
        }