Exemplo n.º 1
0
 public AutoCtrl(AutoObject autoObject, List<FieldObject> fieldObjects)
 {
     ao = autoObject;
     fdos = fieldObjects;
     ctrl = ao.ClsName + "Ctrl";
     api = ao.ClsName + "API";
 }
Exemplo n.º 2
0
        public string CreateCodeString(AutoObject ao, List <FieldObject> fdos)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine("using Obsidian.Edm;  //引入Obsidian框架");
            sb.AppendLine("using System;");
            sb.AppendLine("using System.Collections.Generic;");
            sb.AppendLine("using System.Text;");
            sb.AppendLine();
            //
            sb.AppendLine("namespace " + ao.QueryNS);
            sb.AppendLine("{");
            //
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY_BEGIN);
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "[" + ao.ClsName + " 查询实体类描述]");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "1.继承 Obsidian.Edm.QueryInfo");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "2.命名规范:以Query结尾");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY_END);
            //
            sb.AppendLine(FARGS.TAB + "public class " + ao.ClsName + "Query : QueryInfo");
            sb.AppendLine(FARGS.TAB + "{");

            //构造方法
            sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY_BEGIN);
            sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY + "[构造方法(注意区别和OModel实体的写法)]");
            sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY_END);
            sb.AppendLine(FARGS.TAB2 + "public " + ao.ClsName + "Query() ");
            sb.AppendLine(FARGS.TAB2 + "{");
            sb.AppendLine(FARGS.TAB3 + "base.InitModel(new IModelField[] {");
            //foreach (FieldObject fo in fdos)
            //{
            //    sb.Append(FARGS.TAB4 + "" + fo.PrivateProp + " = new " + fo.Type + "(this, null , \"" + fo.Alias + "\")");
            //    sb.AppendLine(",");
            //}
            sb.AppendLine(CreateQueryStructure());
            //去掉最末尾的","符号
            sb.Remove(sb.ToString().LastIndexOf(','), 1);
            sb.AppendLine(FARGS.TAB3 + "});");
            sb.AppendLine(FARGS.TAB2 + "}");
            sb.AppendLine(FARGS.TAB2);

            //对查询实体字段,确定通用字段名
            //
            sb.AppendLine(FARGS.TAB2 + FARGS.REGION_BEGIN + "[查询字段属性]");
            //foreach (FieldObject fo in fdos)
            //{
            //    sb.AppendLine(FARGS.TAB2 + "private " + fo.Type + " " + fo.PrivateProp + ";");
            //    sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY_BEGIN);
            //    sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY + fo.Descr);
            //    sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY_END);
            //    sb.AppendLine(FARGS.TAB2 + "public " + fo.Type + " " + fo.PublicProp + " {"
            //        + " get { return " + fo.PrivateProp + "; }}");
            //}
            sb.AppendLine(CreateQueryProperty());
            sb.AppendLine(FARGS.TAB2 + FARGS.REGION_END + "[查询字段属性]");
            sb.AppendLine(FARGS.TAB + "}");
            sb.AppendLine("}");
            //
            return(sb.ToString());
        }
Exemplo n.º 3
0
        public string CreateCodeString(AutoObject ao, List<FieldObject> fdos)
        {
            StringBuilder sb = new StringBuilder();
            sb.AppendLine("using Obsidian.Edm;");
            sb.AppendLine("using Obsidian.Data.Sql;");
            sb.AppendLine("using System;");
            sb.AppendLine("using System.Collections.Generic;");
            sb.AppendLine("using System.Text;");
            sb.AppendLine("using " + ao.ModelNS + ";");
            sb.AppendLine();
            //
            sb.AppendLine("namespace " + ao.DalNS);
            sb.AppendLine("{");
            //
            //
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY_BEGIN);
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "[" + ao.ClsName + " 数据访问类]");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "1.需要引入Model层");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "2.需要引入Obsidian.Data.Sql");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "3.需要引入Obsidian.Edm");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "4.方法统一使用internal修饰符(只能在同一程序集内访问)");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "5.命名规范:以DA结尾");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY_END);
            //
            sb.AppendLine(FARGS.TAB + "public class " + ao.ClsName + "DA");
            sb.AppendLine(FARGS.TAB + "{");
            //
            sb.AppendLine(CreateSelectFunction(ao, fdos));
            //
            sb.AppendLine(FARGS.TAB + "}");
            //
            sb.AppendLine("}");

            return sb.ToString();
        }
Exemplo n.º 4
0
 public AutoSDK(AutoObject autoObject, List <FieldObject> fieldObjects)
 {
     ao         = autoObject;
     fdos       = fieldObjects;
     api        = ao.ClsName + "API";
     funcPrefix = "." + StringUtil.FristLower(ao.ClsName, "_") + ".";
 }
Exemplo n.º 5
0
        public string CreateCodeString(AutoObject ao, List<FieldObject> fdos)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine("using Obsidian.Edm;  //引入Obsidian框架");
            sb.AppendLine("using System;");
            sb.AppendLine("using System.Collections.Generic;");
            sb.AppendLine("using System.Text;");
            sb.AppendLine();
            //
            sb.AppendLine("namespace " + ao.QueryNS);
            sb.AppendLine("{");
            //
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY_BEGIN);
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "[" + ao.ClsName + " 查询实体类描述]");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "1.继承 Obsidian.Edm.QueryInfo");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "2.命名规范:以Query结尾");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY_END);
            //
            sb.AppendLine(FARGS.TAB + "public class " + ao.ClsName + "Query : QueryInfo");
            sb.AppendLine(FARGS.TAB + "{");

            //构造方法
            sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY_BEGIN);
            sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY + "[构造方法(注意区别和OModel实体的写法)]");
            sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY_END);
            sb.AppendLine(FARGS.TAB2 + "public " + ao.ClsName + "Query() ");
            sb.AppendLine(FARGS.TAB2 + "{");
            sb.AppendLine(FARGS.TAB3 + "base.InitModel(new IModelField[] {");
            //foreach (FieldObject fo in fdos)
            //{
            //    sb.Append(FARGS.TAB4 + "" + fo.PrivateProp + " = new " + fo.Type + "(this, null , \"" + fo.Alias + "\")");
            //    sb.AppendLine(",");
            //}
            sb.AppendLine(CreateQueryStructure());
            //去掉最末尾的","符号
            sb.Remove(sb.ToString().LastIndexOf(','), 1);
            sb.AppendLine(FARGS.TAB3 + "});");
            sb.AppendLine(FARGS.TAB2 + "}");
            sb.AppendLine(FARGS.TAB2);

            //对查询实体字段,确定通用字段名
            //
            sb.AppendLine(FARGS.TAB2 + FARGS.REGION_BEGIN + "[查询字段属性]");
            //foreach (FieldObject fo in fdos)
            //{
            //    sb.AppendLine(FARGS.TAB2 + "private " + fo.Type + " " + fo.PrivateProp + ";");
            //    sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY_BEGIN);
            //    sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY + fo.Descr);
            //    sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY_END);
            //    sb.AppendLine(FARGS.TAB2 + "public " + fo.Type + " " + fo.PublicProp + " {"
            //        + " get { return " + fo.PrivateProp + "; }}");
            //}
            sb.AppendLine(CreateQueryProperty());
            sb.AppendLine(FARGS.TAB2 + FARGS.REGION_END + "[查询字段属性]");
            sb.AppendLine(FARGS.TAB + "}");
            sb.AppendLine("}");
            //
            return sb.ToString();
        }
Exemplo n.º 6
0
 public AutoCtrl(AutoObject autoObject, List <FieldObject> fieldObjects)
 {
     ao   = autoObject;
     fdos = fieldObjects;
     ctrl = ao.ClsName + "Ctrl";
     api  = ao.ClsName + "API";
 }
Exemplo n.º 7
0
        public string CreateExistsFunction(AutoObject ao, List <FieldObject> fdos)
        {
            StringBuilder sb = new StringBuilder();

            //预留(判断是否存在)
            return(sb.ToString());
        }
Exemplo n.º 8
0
 public AutoSDK(AutoObject autoObject, List<FieldObject> fieldObjects)
 {
     ao = autoObject;
     fdos = fieldObjects;
     api = ao.ClsName + "API";
     funcPrefix = "." + StringUtil.FristLower(ao.ClsName, "_") + ".";
 }
Exemplo n.º 9
0
 //public AutoBL()
 //{
 //}
 public AutoBL(AutoObject autoObject, List<FieldObject> fieldObjects)
 {
     ao = autoObject;
     fdos = fieldObjects;
     info = ao.ClsName + "Info";
     query = ao.ClsName + "Query";
     da = ao.ClsName + "DA";
     bl = ao.ClsName + "BL";
     funcPrefix = "." + StringUtil.FristLower(ao.ClsName, "_") + ".";
 }
Exemplo n.º 10
0
        //public AutoBL()
        //{
        //}

        public AutoBL(AutoObject autoObject, List <FieldObject> fieldObjects)
        {
            ao         = autoObject;
            fdos       = fieldObjects;
            info       = ao.ClsName + "Info";
            query      = ao.ClsName + "Query";
            da         = ao.ClsName + "DA";
            bl         = ao.ClsName + "BL";
            funcPrefix = "." + StringUtil.FristLower(ao.ClsName, "_") + ".";
        }
Exemplo n.º 11
0
        void SetAutoObject(string tbName)
        {
            ao          = new AutoObject();
            ao.ModelNS  = ConfigurationManager.AppSettings["ModelNS"];
            ao.QueryNS  = ConfigurationManager.AppSettings["QueryNS"];
            ao.PermitNS = ConfigurationManager.AppSettings["PermitNS"];

            ao.DalNS = ConfigurationManager.AppSettings["DALNS"];
            ao.BllNS = ConfigurationManager.AppSettings["BLLNS"];

            ao.SdkNS  = ConfigurationManager.AppSettings["SDKNS"];
            ao.CtrlNS = ConfigurationManager.AppSettings["CtrlNS"];
            ao.ViewNS = ConfigurationManager.AppSettings["ViewNS"];

            ao.BllBaseCls  = ConfigurationManager.AppSettings["BLLBaseCls"];
            ao.SdkBaseCls  = ConfigurationManager.AppSettings["SDKBaseCls"];
            ao.CtrlBaseCls = ConfigurationManager.AppSettings["CtrlBaseCls"];
            //
            ao.DbName  = dbName;
            ao.TbName  = tbName;
            ao.ClsName = StringUtil.FirstUpper(tbName, '_');
        }
Exemplo n.º 12
0
        public string CreateCodeString(AutoObject ao, List <FieldObject> fdos)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine("using Obsidian.Edm;");
            sb.AppendLine("using Obsidian.Data.Sql;");
            sb.AppendLine("using System;");
            sb.AppendLine("using System.Collections.Generic;");
            sb.AppendLine("using System.Text;");
            sb.AppendLine("using " + ao.ModelNS + ";");
            sb.AppendLine();
            //
            sb.AppendLine("namespace " + ao.DalNS);
            sb.AppendLine("{");
            //
            //
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY_BEGIN);
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "[" + ao.ClsName + " 数据访问类]");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "1.需要引入Model层");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "2.需要引入Obsidian.Data.Sql");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "3.需要引入Obsidian.Edm");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "4.方法统一使用internal修饰符(只能在同一程序集内访问)");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "5.命名规范:以DA结尾");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY_END);
            //
            sb.AppendLine(FARGS.TAB + "public class " + ao.ClsName + "DA");
            sb.AppendLine(FARGS.TAB + "{");
            //
            sb.AppendLine(CreateSelectFunction(ao, fdos));
            //
            sb.AppendLine(FARGS.TAB + "}");
            //
            sb.AppendLine("}");

            return(sb.ToString());
        }
Exemplo n.º 13
0
        void SetAutoObject(string tbName)
        {
            ao = new AutoObject();
            ao.ModelNS = ConfigurationManager.AppSettings["ModelNS"];
            ao.QueryNS = ConfigurationManager.AppSettings["QueryNS"];
            ao.PermitNS = ConfigurationManager.AppSettings["PermitNS"];

            ao.DalNS = ConfigurationManager.AppSettings["DALNS"];
            ao.BllNS = ConfigurationManager.AppSettings["BLLNS"];

            ao.SdkNS = ConfigurationManager.AppSettings["SDKNS"];
            ao.CtrlNS = ConfigurationManager.AppSettings["CtrlNS"];
            ao.ViewNS = ConfigurationManager.AppSettings["ViewNS"];

            ao.BllBaseCls = ConfigurationManager.AppSettings["BLLBaseCls"];
            ao.SdkBaseCls = ConfigurationManager.AppSettings["SDKBaseCls"];
            ao.CtrlBaseCls = ConfigurationManager.AppSettings["CtrlBaseCls"];
            //
            ao.DbName = dbName;
            ao.TbName = tbName;
            ao.ClsName = StringUtil.FirstUpper(tbName, '_');
        }
Exemplo n.º 14
0
 public AutoView(AutoObject autoObject, List <FieldObject> fieldObjects)
 {
     ao   = autoObject;
     fdos = fieldObjects;
 }
Exemplo n.º 15
0
 public AutoCoder(AutoObject ao, DataTable fdDT)
 {
     this.ao = ao;
     fdos    = DataTableToFieldObject(fdDT);
 }
Exemplo n.º 16
0
 public AutoPermit(AutoObject autoObject, List<FieldObject> fieldObjects)
 {
     ao = autoObject;
     fdos = fieldObjects;
     permit = ao.ClsName + "Permit";
 }
Exemplo n.º 17
0
 public AutoCoder(AutoObject ao, DataTable fdDT)
 {
     this.ao = ao;
     fdos = DataTableToFieldObject(fdDT);
 }
Exemplo n.º 18
0
 public string CreateExistsFunction(AutoObject ao, List<FieldObject> fdos)
 {
     StringBuilder sb = new StringBuilder();
     //预留(判断是否存在)
     return sb.ToString();
 }
Exemplo n.º 19
0
        public string CreateSelectFunction(AutoObject ao, List<FieldObject> fdos)
        {
            string info = ao.ClsName + "Info";
            StringBuilder sb = new StringBuilder();
            sb.AppendLine(FARGS.TAB2 + FARGS.REGION_BEGIN + "[SELECT]");
            //SelectById
            sb.AppendLine(FARGS.TAB2 + "internal " + info + " SelectById(long id)");
            sb.AppendLine(FARGS.TAB2 + "{");
            sb.AppendLine(FARGS.TAB3 + info + " om = new " + info + "();");
            sb.AppendLine(FARGS.TAB3 + "IDbHandler dbh = om.CreateHandler();    //创建数据库操作句柄接口");
            sb.AppendLine(FARGS.TAB3 + "//设置返回的实体字段,相当于EF的Select字段");
            sb.AppendLine(FARGS.TAB3 + "dbh.SetFields(om.Fields);   //om.Fields为所有字段");
            sb.AppendLine(FARGS.TAB3 + "//dbh.SetFields(om.Id, om.Enabled, om.CreateTime);    //自定义返回的实体字段");
            sb.AppendLine(FARGS.TAB3 + "");
            sb.AppendLine(FARGS.TAB3 + "dbh.Where(om.Id.Equals(id));    //组装Where条件语句");
            sb.AppendLine(FARGS.TAB3 + "");
            sb.AppendLine(FARGS.TAB3 + "DataReader dr = dbh.Select();   //执行查询");
            sb.AppendLine(FARGS.TAB3 + "om = dr.ReadFirst<" + info + ">();    //获取结果集方法一(自动关闭读取器)");
            sb.AppendLine(FARGS.TAB3 + "//获取结果集方法二(手动关闭读取器,更灵活)");
            sb.AppendLine(FARGS.TAB3 + "/*");
            sb.AppendLine(FARGS.TAB3 + "if (dr.Read())");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "dr.ReadTo(om);");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "else");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "om = null;");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "dr.Close();");
            sb.AppendLine(FARGS.TAB3 + "*/");
            sb.AppendLine(FARGS.TAB3 + "return om;");
            sb.AppendLine(FARGS.TAB2 + "}");
            sb.AppendLine(FARGS.TAB2 + "//参照SelectById(),可按需构建SelectByName(),SelectByCode()等方法");
            /******************************/
            sb.AppendLine(FARGS.TAB2 + "");
            //SelectList
            sb.AppendLine(FARGS.TAB2 + "internal List<" + info + "> SelectList(" + ao.ClsName + "Query qry, out ListAttrInfo la)");
            sb.AppendLine(FARGS.TAB2 + "{");
            sb.AppendLine(FARGS.TAB3 + info + " om = new " + info + "();");
            sb.AppendLine(FARGS.TAB3 + "IDbHandler dbh = om.CreateHandler();");
            sb.AppendLine(FARGS.TAB3 + "dbh.SetFields(om.Fields);");
            sb.AppendLine(FARGS.TAB3 + "//[BEGIN]::组装Where组合条件语句");
            sb.AppendLine(FARGS.TAB3 + "//组装日期时间条件");
            sb.AppendLine(FARGS.TAB3 + "string dtFormat = \"yyyy-MM-dd HH:mm:ss\";");
            sb.AppendLine(FARGS.TAB3 + "string startTime;");
            sb.AppendLine(FARGS.TAB3 + "string endTime;");
            sb.AppendLine(FARGS.TAB3 + "if (!qry.StartTime.IsNull && (!qry.StartTime.IsMinValue))");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "startTime = qry.StartTime.Value.ToString(dtFormat);");
            sb.AppendLine(FARGS.TAB4 + "dbh.Where(om.CreateTime.Compare(\">=\", startTime));");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "if (!qry.EndTime.IsNull && (!qry.EndTime.IsMinValue))");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "endTime = qry.EndTime.Value.ToString(dtFormat);");
            sb.AppendLine(FARGS.TAB4 + "dbh.Where(om.CreateTime.Compare(\"<=\", endTime));");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "//组装记录ID条件");
            sb.AppendLine(FARGS.TAB3 + "if(!qry.Id.IsNull)");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "dbh.Where(om.Id.Equals(qry.Id.Value));");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "//组装记录ID串条件");
            sb.AppendLine(FARGS.TAB3 + "if(!qry.Ids.IsNull && qry.Ids.Count > 0)");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "dbh.Where(om.Id.In(qry.Ids.Value));");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "//组装关键字条件");
            sb.AppendLine(FARGS.TAB3 + "if(!qry.Keyword.IsNullOrWhiteSpace)");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "dbh.Where(om.Content.Like(qry.Keyword.Value));");
            sb.AppendLine(FARGS.TAB4 + "//需要复合条件则使用下面的写法");
            sb.AppendLine(FARGS.TAB4 + "//string kw = qry.Keyword.Value;");
            sb.AppendLine(FARGS.TAB4 + "//CompoundCondition cc = new CompoundCondition();    //复合条件类");
            sb.AppendLine(FARGS.TAB4 + "//cc.Or(om.Title.Like(kw)).Or(om.Content.Like(kw));");
            sb.AppendLine(FARGS.TAB4 + "//dbh.Where(cc);");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "//组装关键字串条件");
            sb.AppendLine(FARGS.TAB3 + "if(!qry.Keywords.IsNull && qry.Keywords.Count > 0)");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "CompoundCondition cc = new CompoundCondition();    //复合条件类");
            sb.AppendLine(FARGS.TAB4 + "IList<string> kws = qry.Keywords.Value;");
            sb.AppendLine(FARGS.TAB4 + "for(int i=0,j=kws.Count; i<j; i++)");
            sb.AppendLine(FARGS.TAB4 + "{");
            sb.AppendLine(FARGS.TAB5 + "cc.Or(om.Title.Like(kws[i]));");
            sb.AppendLine(FARGS.TAB5 + "cc.Or(om.Content.Like(kws[i]));");
            sb.AppendLine(FARGS.TAB4 + "}");
            sb.AppendLine(FARGS.TAB4 + "dbh.Where(cc);");
            sb.AppendLine(FARGS.TAB4 + "//dbh.Where(om.Content.Contanis(qry.Keywords.Value)); //Contanis,需要修正为Contains");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "//组装记录状态条件");
            sb.AppendLine(FARGS.TAB3 + "if(!qry.Enabled.IsNull)");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "dbh.Where(om.Enabled.Equals(qry.Enabled.Value));");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "//组装JOIN条件(预留)");
            sb.AppendLine(FARGS.TAB3 + "");
            sb.AppendLine(FARGS.TAB3 + "//组装排序条件(放在Where子句最后,分页时,必须有OrderBy)");
            sb.AppendLine(FARGS.TAB3 + "if(!qry.OrderBy.IsNull && qry.OrderBy.Count>0)");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "OrderInfo[] ois = qry.OrderBy.GetArray();");
            sb.AppendLine(FARGS.TAB4 + "foreach (OrderInfo oi in ois)");
            sb.AppendLine(FARGS.TAB4 + "{");
            sb.AppendLine(FARGS.TAB5 + "//拼装的order by条件,case条件字段值需要和Query查询实体的OrderByFields属性一致");
            sb.AppendLine(FARGS.TAB5 + "//排序字段别名转化为小写");
            sb.AppendLine(FARGS.TAB5 + "switch (oi.FieldAlias.ToLower())");
            sb.AppendLine(FARGS.TAB5 + "{");
            sb.AppendLine(FARGS.TAB6 + "case \"title\":");
            sb.AppendLine(FARGS.TAB7 + "dbh.OrderBy(om.Title, oi.OrderType);");
            sb.AppendLine(FARGS.TAB7 + "break;");
            sb.AppendLine(FARGS.TAB6 + "case \"id\":");
            sb.AppendLine(FARGS.TAB6 + "default:");
            sb.AppendLine(FARGS.TAB7 + "dbh.OrderBy(om.Id, oi.OrderType);");
            sb.AppendLine(FARGS.TAB7 + "break;");
            sb.AppendLine(FARGS.TAB5 + "}");
            sb.AppendLine(FARGS.TAB4 + "}");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "else");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "dbh.OrderBy(om.Id, OrderType.DESC); //默认排序条件");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "//[END]::组装Where组合条件语句");
            sb.AppendLine(FARGS.TAB3 + "");
            sb.AppendLine(FARGS.TAB3 + "List<" + info + "> list = new List<" + info + ">();");
            sb.AppendLine(FARGS.TAB3 + "DataReader dr = dbh.Select(qry, out la);");
            sb.AppendLine(FARGS.TAB3 + "list = dr.ReadList<" + info + ">(); //获取结果集方法一(自动关闭读取器)");
            sb.AppendLine(FARGS.TAB3 + "//获取结果集方法二(手动关闭读取器,更灵活)");
            sb.AppendLine(FARGS.TAB3 + "/**");
            sb.AppendLine(FARGS.TAB3 + "while (dr.Read())");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + info + " ei = new " + info + "();");
            sb.AppendLine(FARGS.TAB4 + "dr.ReadTo(ei);");
            sb.AppendLine(FARGS.TAB4 + "list.Add(ei);");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "dr.Close();");
            sb.AppendLine(FARGS.TAB3 + "*/");
            sb.AppendLine(FARGS.TAB3 + "");
            sb.AppendLine(FARGS.TAB3 + "return list;");
            sb.AppendLine(FARGS.TAB2 + "}");
            //
            sb.AppendLine(FARGS.TAB2 + FARGS.REGION_END + "[SELECT]");

            return sb.ToString();
        }
Exemplo n.º 20
0
        public string CreateCodeString(AutoObject ao, List <FieldObject> fdos)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine("using Obsidian.Edm;  //引入Obsidian框架");
            sb.AppendLine("using System;");
            sb.AppendLine("using System.Collections.Generic;");
            sb.AppendLine("using System.Text;");
            sb.AppendLine();
            //
            sb.AppendLine("namespace " + ao.ModelNS);
            sb.AppendLine("{");
            //
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY_BEGIN);
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "[" + ao.ClsName + " 实体类描述]");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "1.继承 Obsidian.Edm.OModel");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "2.命名规范:以Info结尾");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY_END);
            //
            sb.AppendLine(FARGS.TAB + "public class " + ao.ClsName + "Info : OModel");
            sb.AppendLine(FARGS.TAB + "{");
            //sb.AppendLine(FARGS.TAB2);
            //构造方法
            sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY_BEGIN);
            sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY + "[构造方法]");
            sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY_END);
            sb.AppendLine(FARGS.TAB2 + "public " + ao.ClsName + "Info() ");
            sb.AppendLine(FARGS.TAB2 + "{");
            sb.AppendLine(FARGS.TAB3 + "base.InitModel(DbcsName, TableName, new IModelField[] {");

            foreach (FieldObject fo in fdos)
            {
                sb.Append(FARGS.TAB4 + "" + fo.PrivateProp + " = new " + fo.Type + "(this, \""
                          + fo.Name + "\" , \"" + fo.Alias + "\")");
                sb.AppendLine(",");
            }
            //去掉最末尾的","符号
            sb.Remove(sb.ToString().LastIndexOf(','), 1);

            sb.AppendLine(FARGS.TAB3 + "});");
            sb.AppendLine(FARGS.TAB2 + "}");
            sb.AppendLine(FARGS.TAB2);

            sb.AppendLine(FARGS.TAB2 + FARGS.REGION_BEGIN + "[字段属性]");

            //字段属性
            sb.AppendLine(FARGS.TAB2 + "private string DbcsName = \"" + ao.DbName + "\";  //bin目录下,配置文件AppConfig.xml中的数据库连接字符串别名");
            sb.AppendLine(FARGS.TAB2 + "private string TableName = \"" + ao.TbName + "\"; //数据库中的表名");
            sb.AppendLine(FARGS.TAB2);
            foreach (FieldObject fo in fdos)
            {
                sb.AppendLine(FARGS.TAB2 + "private " + fo.Type + " " + fo.PrivateProp + ";");
                sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY_BEGIN);
                sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY + fo.Descr);
                sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY_END);
                sb.AppendLine(FARGS.TAB2 + "public " + fo.Type + " " + fo.PublicProp + " {"
                              + " get { return " + fo.PrivateProp + "; }}");
            }
            sb.AppendLine(FARGS.TAB2 + FARGS.REGION_END + "[字段属性]");
            //
            sb.AppendLine(FARGS.TAB + "}");
            //
            sb.AppendLine("}");

            return(sb.ToString());
        }
Exemplo n.º 21
0
 public AutoJs(AutoObject autoObject, List <FieldObject> fieldObjects)
 {
     ao         = autoObject;
     fdos       = fieldObjects;
     apiClsName = StringUtil.FristLower(ao.ClsName, "_");
 }
Exemplo n.º 22
0
 public AutoDescri(AutoObject autoObject, List <FieldObject> fieldObjects)
 {
     ao   = autoObject;
     fdos = fieldObjects;
 }
Exemplo n.º 23
0
        public string CreateSelectFunction(AutoObject ao, List <FieldObject> fdos)
        {
            string        info = ao.ClsName + "Info";
            StringBuilder sb   = new StringBuilder();

            sb.AppendLine(FARGS.TAB2 + FARGS.REGION_BEGIN + "[SELECT]");
            //SelectById
            sb.AppendLine(FARGS.TAB2 + "internal " + info + " SelectById(long id)");
            sb.AppendLine(FARGS.TAB2 + "{");
            sb.AppendLine(FARGS.TAB3 + info + " om = new " + info + "();");
            sb.AppendLine(FARGS.TAB3 + "IDbHandler dbh = om.CreateHandler();    //创建数据库操作句柄接口");
            sb.AppendLine(FARGS.TAB3 + "//设置返回的实体字段,相当于EF的Select字段");
            sb.AppendLine(FARGS.TAB3 + "dbh.SetFields(om.Fields);   //om.Fields为所有字段");
            sb.AppendLine(FARGS.TAB3 + "//dbh.SetFields(om.Id, om.Enabled, om.CreateTime);    //自定义返回的实体字段");
            sb.AppendLine(FARGS.TAB3 + "");
            sb.AppendLine(FARGS.TAB3 + "dbh.Where(om.Id.Equals(id));    //组装Where条件语句");
            sb.AppendLine(FARGS.TAB3 + "");
            sb.AppendLine(FARGS.TAB3 + "DataReader dr = dbh.Select();   //执行查询");
            sb.AppendLine(FARGS.TAB3 + "om = dr.ReadFirst<" + info + ">();    //获取结果集方法一(自动关闭读取器)");
            sb.AppendLine(FARGS.TAB3 + "//获取结果集方法二(手动关闭读取器,更灵活)");
            sb.AppendLine(FARGS.TAB3 + "/*");
            sb.AppendLine(FARGS.TAB3 + "if (dr.Read())");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "dr.ReadTo(om);");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "else");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "om = null;");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "dr.Close();");
            sb.AppendLine(FARGS.TAB3 + "*/");
            sb.AppendLine(FARGS.TAB3 + "return om;");
            sb.AppendLine(FARGS.TAB2 + "}");
            sb.AppendLine(FARGS.TAB2 + "//参照SelectById(),可按需构建SelectByName(),SelectByCode()等方法");
            /******************************/
            sb.AppendLine(FARGS.TAB2 + "");
            //SelectList
            sb.AppendLine(FARGS.TAB2 + "internal List<" + info + "> SelectList(" + ao.ClsName + "Query qry, out ListAttrInfo la)");
            sb.AppendLine(FARGS.TAB2 + "{");
            sb.AppendLine(FARGS.TAB3 + info + " om = new " + info + "();");
            sb.AppendLine(FARGS.TAB3 + "IDbHandler dbh = om.CreateHandler();");
            sb.AppendLine(FARGS.TAB3 + "dbh.SetFields(om.Fields);");
            sb.AppendLine(FARGS.TAB3 + "//[BEGIN]::组装Where组合条件语句");
            sb.AppendLine(FARGS.TAB3 + "//组装日期时间条件");
            sb.AppendLine(FARGS.TAB3 + "string dtFormat = \"yyyy-MM-dd HH:mm:ss\";");
            sb.AppendLine(FARGS.TAB3 + "string startTime;");
            sb.AppendLine(FARGS.TAB3 + "string endTime;");
            sb.AppendLine(FARGS.TAB3 + "if (!qry.StartTime.IsNull && (!qry.StartTime.IsMinValue))");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "startTime = qry.StartTime.Value.ToString(dtFormat);");
            sb.AppendLine(FARGS.TAB4 + "dbh.Where(om.CreateTime.Compare(\">=\", startTime));");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "if (!qry.EndTime.IsNull && (!qry.EndTime.IsMinValue))");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "endTime = qry.EndTime.Value.ToString(dtFormat);");
            sb.AppendLine(FARGS.TAB4 + "dbh.Where(om.CreateTime.Compare(\"<=\", endTime));");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "//组装记录ID条件");
            sb.AppendLine(FARGS.TAB3 + "if(!qry.Id.IsNull)");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "dbh.Where(om.Id.Equals(qry.Id.Value));");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "//组装记录ID串条件");
            sb.AppendLine(FARGS.TAB3 + "if(!qry.Ids.IsNull && qry.Ids.Count > 0)");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "dbh.Where(om.Id.In(qry.Ids.Value));");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "//组装关键字条件");
            sb.AppendLine(FARGS.TAB3 + "if(!qry.Keyword.IsNullOrWhiteSpace)");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "dbh.Where(om.Content.Like(qry.Keyword.Value));");
            sb.AppendLine(FARGS.TAB4 + "//需要复合条件则使用下面的写法");
            sb.AppendLine(FARGS.TAB4 + "//string kw = qry.Keyword.Value;");
            sb.AppendLine(FARGS.TAB4 + "//CompoundCondition cc = new CompoundCondition();    //复合条件类");
            sb.AppendLine(FARGS.TAB4 + "//cc.Or(om.Title.Like(kw)).Or(om.Content.Like(kw));");
            sb.AppendLine(FARGS.TAB4 + "//dbh.Where(cc);");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "//组装关键字串条件");
            sb.AppendLine(FARGS.TAB3 + "if(!qry.Keywords.IsNull && qry.Keywords.Count > 0)");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "CompoundCondition cc = new CompoundCondition();    //复合条件类");
            sb.AppendLine(FARGS.TAB4 + "IList<string> kws = qry.Keywords.Value;");
            sb.AppendLine(FARGS.TAB4 + "for(int i=0,j=kws.Count; i<j; i++)");
            sb.AppendLine(FARGS.TAB4 + "{");
            sb.AppendLine(FARGS.TAB5 + "cc.Or(om.Title.Like(kws[i]));");
            sb.AppendLine(FARGS.TAB5 + "cc.Or(om.Content.Like(kws[i]));");
            sb.AppendLine(FARGS.TAB4 + "}");
            sb.AppendLine(FARGS.TAB4 + "dbh.Where(cc);");
            sb.AppendLine(FARGS.TAB4 + "//dbh.Where(om.Content.Contanis(qry.Keywords.Value)); //Contanis,需要修正为Contains");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "//组装记录状态条件");
            sb.AppendLine(FARGS.TAB3 + "if(!qry.Enabled.IsNull)");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "dbh.Where(om.Enabled.Equals(qry.Enabled.Value));");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "//组装JOIN条件(预留)");
            sb.AppendLine(FARGS.TAB3 + "");
            sb.AppendLine(FARGS.TAB3 + "//组装排序条件(放在Where子句最后,分页时,必须有OrderBy)");
            sb.AppendLine(FARGS.TAB3 + "if(!qry.OrderBy.IsNull && qry.OrderBy.Count>0)");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "OrderInfo[] ois = qry.OrderBy.GetArray();");
            sb.AppendLine(FARGS.TAB4 + "foreach (OrderInfo oi in ois)");
            sb.AppendLine(FARGS.TAB4 + "{");
            sb.AppendLine(FARGS.TAB5 + "//拼装的order by条件,case条件字段值需要和Query查询实体的OrderByFields属性一致");
            sb.AppendLine(FARGS.TAB5 + "//排序字段别名转化为小写");
            sb.AppendLine(FARGS.TAB5 + "switch (oi.FieldAlias.ToLower())");
            sb.AppendLine(FARGS.TAB5 + "{");
            sb.AppendLine(FARGS.TAB6 + "case \"title\":");
            sb.AppendLine(FARGS.TAB7 + "dbh.OrderBy(om.Title, oi.OrderType);");
            sb.AppendLine(FARGS.TAB7 + "break;");
            sb.AppendLine(FARGS.TAB6 + "case \"id\":");
            sb.AppendLine(FARGS.TAB6 + "default:");
            sb.AppendLine(FARGS.TAB7 + "dbh.OrderBy(om.Id, oi.OrderType);");
            sb.AppendLine(FARGS.TAB7 + "break;");
            sb.AppendLine(FARGS.TAB5 + "}");
            sb.AppendLine(FARGS.TAB4 + "}");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "else");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + "dbh.OrderBy(om.Id, OrderType.DESC); //默认排序条件");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "//[END]::组装Where组合条件语句");
            sb.AppendLine(FARGS.TAB3 + "");
            sb.AppendLine(FARGS.TAB3 + "List<" + info + "> list = new List<" + info + ">();");
            sb.AppendLine(FARGS.TAB3 + "DataReader dr = dbh.Select(qry, out la);");
            sb.AppendLine(FARGS.TAB3 + "list = dr.ReadList<" + info + ">(); //获取结果集方法一(自动关闭读取器)");
            sb.AppendLine(FARGS.TAB3 + "//获取结果集方法二(手动关闭读取器,更灵活)");
            sb.AppendLine(FARGS.TAB3 + "/**");
            sb.AppendLine(FARGS.TAB3 + "while (dr.Read())");
            sb.AppendLine(FARGS.TAB3 + "{");
            sb.AppendLine(FARGS.TAB4 + info + " ei = new " + info + "();");
            sb.AppendLine(FARGS.TAB4 + "dr.ReadTo(ei);");
            sb.AppendLine(FARGS.TAB4 + "list.Add(ei);");
            sb.AppendLine(FARGS.TAB3 + "}");
            sb.AppendLine(FARGS.TAB3 + "dr.Close();");
            sb.AppendLine(FARGS.TAB3 + "*/");
            sb.AppendLine(FARGS.TAB3 + "");
            sb.AppendLine(FARGS.TAB3 + "return list;");
            sb.AppendLine(FARGS.TAB2 + "}");
            //
            sb.AppendLine(FARGS.TAB2 + FARGS.REGION_END + "[SELECT]");

            return(sb.ToString());
        }
Exemplo n.º 24
0
 public AutoPermit(AutoObject autoObject, List <FieldObject> fieldObjects)
 {
     ao     = autoObject;
     fdos   = fieldObjects;
     permit = ao.ClsName + "Permit";
 }
Exemplo n.º 25
0
 public AutoSql(AutoObject autoObject, List<FieldObject> fieldObjects)
 {
     ao = autoObject;
     fdos = fieldObjects;
 }
Exemplo n.º 26
0
 public AutoJs(AutoObject autoObject, List<FieldObject> fieldObjects)
 {
     ao = autoObject;
     fdos = fieldObjects;
     apiClsName = StringUtil.FristLower(ao.ClsName, "_");
 }
Exemplo n.º 27
0
        public string CreateCodeString(AutoObject ao, List<FieldObject> fdos)
        {
            StringBuilder sb = new StringBuilder();
            sb.AppendLine("using Obsidian.Edm;  //引入Obsidian框架");
            sb.AppendLine("using System;");
            sb.AppendLine("using System.Collections.Generic;");
            sb.AppendLine("using System.Text;");
            sb.AppendLine();
            //
            sb.AppendLine("namespace " + ao.ModelNS);
            sb.AppendLine("{");
            //
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY_BEGIN);
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "[" + ao.ClsName + " 实体类描述]");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "1.继承 Obsidian.Edm.OModel");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY + "2.命名规范:以Info结尾");
            sb.AppendLine(FARGS.TAB + FARGS.SUMMARY_END);
            //
            sb.AppendLine(FARGS.TAB + "public class " + ao.ClsName + "Info : OModel");
            sb.AppendLine(FARGS.TAB + "{");
            //sb.AppendLine(FARGS.TAB2);
            //构造方法
            sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY_BEGIN);
            sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY + "[构造方法]");
            sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY_END);
            sb.AppendLine(FARGS.TAB2 + "public " + ao.ClsName + "Info() ");
            sb.AppendLine(FARGS.TAB2 + "{");
            sb.AppendLine(FARGS.TAB3 + "base.InitModel(DbcsName, TableName, new IModelField[] {");

            foreach (FieldObject fo in fdos)
            {
                sb.Append(FARGS.TAB4 + "" + fo.PrivateProp + " = new " + fo.Type + "(this, \""
                    + fo.Name + "\" , \"" + fo.Alias + "\")");
                sb.AppendLine(",");
            }
            //去掉最末尾的","符号
            sb.Remove(sb.ToString().LastIndexOf(','), 1);

            sb.AppendLine(FARGS.TAB3 + "});");
            sb.AppendLine(FARGS.TAB2 + "}");
            sb.AppendLine(FARGS.TAB2);

            sb.AppendLine(FARGS.TAB2 + FARGS.REGION_BEGIN + "[字段属性]");

            //字段属性
            sb.AppendLine(FARGS.TAB2 + "private string DbcsName = \"" + ao.DbName + "\";  //bin目录下,配置文件AppConfig.xml中的数据库连接字符串别名");
            sb.AppendLine(FARGS.TAB2 + "private string TableName = \"" + ao.TbName + "\"; //数据库中的表名");
            sb.AppendLine(FARGS.TAB2);
            foreach (FieldObject fo in fdos)
            {
                sb.AppendLine(FARGS.TAB2 + "private " + fo.Type + " " + fo.PrivateProp + ";");
                sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY_BEGIN);
                sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY + fo.Descr);
                sb.AppendLine(FARGS.TAB2 + FARGS.SUMMARY_END);
                sb.AppendLine(FARGS.TAB2 + "public " + fo.Type + " " + fo.PublicProp + " {"
                    + " get { return " + fo.PrivateProp + "; }}");
            }
            sb.AppendLine(FARGS.TAB2 + FARGS.REGION_END + "[字段属性]");
            //
            sb.AppendLine(FARGS.TAB + "}");
            //
            sb.AppendLine("}");

            return sb.ToString();
        }