Ejemplo n.º 1
0
        /// <summary>
        /// 使用模板生成代码
        /// </summary>
        /// <param name="tplContent">模板文件的内容</param>
        /// <returns></returns>
        public string Builder(string tplContent)
        {
            Columns = DbToCS.DbtoCSColumns(Columns, DbType);
            if (!string.IsNullOrWhiteSpace(tplContent))
            {
                #region 模板生成
                //var template = FileHelper.Read(@"D:\工作\GitHub\Dos.Tools\bin\Debug\Template\实体类_最新.tpl");
                var        primarykeyColumns = Columns.FindAll(col => col.IsPK);
                var        identityColumn    = Columns.Find(col => col.IsIdentity);
                StringPlus plus = new StringPlus();
                //plus.AppendLine("//------------------------------------------------------------------------------");
                //plus.AppendLine("// <auto-generated>");
                //plus.AppendLine("//     此代码由工具生成。");
                //plus.AppendLine("//     运行时版本:" + Environment.Version.ToString());
                //plus.AppendLine("//     Website: http://ITdos.com/Dos/ORM/Index.html");
                //plus.AppendLine("//     对此文件的更改可能会导致不正确的行为,并且如果");
                //plus.AppendLine("//     重新生成代码,这些更改将会丢失。");
                //plus.AppendLine("// </auto-generated>");
                //plus.AppendLine("//------------------------------------------------------------------------------");
                //plus.AppendLine();
                var result = Razor.Parse(tplContent, new
                {
                    ClassName         = ClassName,
                    TableName         = TableName,
                    Columns           = Columns,
                    NameSpace         = NameSpace,
                    PrimaryKeyColumns = primarykeyColumns,
                    IdentityColumn    = identityColumn,
                    i1        = 1,
                    i2        = 1,
                    i3        = 1,
                    TablePre  = TablePre,
                    TableNext = TableNext
                });
                return(plus.ToString() + result);

                #endregion
            }
            return("请使用模板生成方式");
        }
Ejemplo n.º 2
0
        public string Builder(string tplContent = "")
        {
            Columns = DbToCS.DbtoCSColumns(Columns, DbType);
            if (!string.IsNullOrWhiteSpace(tplContent))
            {
                #region 模板生成
                //var template = FileHelper.Read(@"D:\工作\GitHub\Dos.Tools\bin\Debug\Template\实体类_最新.tpl");
                var        primarykeyColumns = Columns.FindAll(col => col.IsPK);
                var        identityColumn    = Columns.Find(col => col.IsIdentity);
                StringPlus plus = new StringPlus();
                plus.AppendLine("//------------------------------------------------------------------------------");
                plus.AppendLine("// <auto-generated>");
                plus.AppendLine("//     此代码由工具生成。");
                plus.AppendLine("//     运行时版本:" + Environment.Version.ToString());
                plus.AppendLine("//     Website: http://ITdos.com/Dos/ORM/Index.html");
                plus.AppendLine("//     对此文件的更改可能会导致不正确的行为,并且如果");
                plus.AppendLine("//     重新生成代码,这些更改将会丢失。");
                plus.AppendLine("// </auto-generated>");
                plus.AppendLine("//------------------------------------------------------------------------------");
                plus.AppendLine();
                var result = Razor.Parse(tplContent, new
                {
                    ClassName         = ClassName,
                    TableName         = TableName,
                    Columns           = Columns,
                    NameSpace         = NameSpace,
                    PrimaryKeyColumns = primarykeyColumns,
                    IdentityColumn    = identityColumn,
                    i1 = 1,
                    i2 = 1,
                    i3 = 1
                });
                return(plus.ToString() + result);

                #endregion
            }
            else
            {
                #region 老版本
                StringPlus plus = new StringPlus();
                plus.AppendLine("//------------------------------------------------------------------------------");
                plus.AppendLine("// <auto-generated>");
                plus.AppendLine("//     此代码由工具生成。");
                plus.AppendLine("//     运行时版本:" + Environment.Version.ToString());
                plus.AppendLine("//     Website: http://ITdos.com/Dos/ORM/Index.html");
                plus.AppendLine("//     对此文件的更改可能会导致不正确的行为,并且如果");
                plus.AppendLine("//     重新生成代码,这些更改将会丢失。");
                plus.AppendLine("// </auto-generated>");
                plus.AppendLine("//------------------------------------------------------------------------------");
                plus.AppendLine();
                plus.AppendLine();
                plus.AppendLine("using System;");
                plus.AppendLine("using System.Data;");
                plus.AppendLine("using System.Data.Common;");
                plus.AppendLine("using Dos.ORM;");
                plus.AppendLine("using Dos.ORM.Common;");
                plus.AppendLine();
                plus.AppendLine("namespace " + NameSpace);
                plus.AppendLine("{");
                plus.AppendLine();
                plus.AppendSpaceLine(1, "/// <summary>");
                plus.AppendSpaceLine(1, "/// 实体类" + ClassName + " 。(属性说明自动提取数据库字段的描述信息)");
                plus.AppendSpaceLine(1, "/// </summary>");
                if (!_isNewModel)
                {
                    //plus.AppendSpaceLine(1, "[Serializable]");
                }
                else
                {
                    plus.AppendSpaceLine(1, "[Table(\"" + TableName + "\")]");
                }
                plus.AppendSpaceLine(1, "[Serializable]");
                plus.AppendSpaceLine(1, "public partial class " + ClassName + " : Entity ");
                plus.AppendSpaceLine(1, "{");
                if (!_isNewModel)
                {
                    plus.AppendSpaceLine(2, "public " + ClassName + "():base(\"" + TableName + "\") {}");
                    plus.AppendLine();
                }
                else
                {
                    //plus.AppendSpaceLine(2, "public " + ClassName + "() { }");
                }
                plus.AppendLine(BuilderModel());
                plus.AppendLine(BuilderMethod());
                plus.AppendSpaceLine(1, "}");
                plus.AppendLine("}");
                plus.AppendLine("");
                return(plus.ToString());

                #endregion
            }
        }