/// <summary>
        /// AS `V_SRC_TA` INNER JOIN B AS `V_SRC_TB` ON `V_SRC_TA`.ID = `V_SRC_TB`.ID.....
        /// </summary>
        /// <param name="_parameters">成员集合</param>
        /// <returns>返回条件查询SQL</returns>
        public string JoinRule(SqlRelationModel model, string[] conditions)
        {
            string        source_table      = model.EntityModel.TableName;
            StringBuilder sql               = new StringBuilder(16 + source_table.Length);
            string        join_inner_table  = JoinHelper.GetA(model.EntityModel);
            string        join_outter_table = JoinHelper.GetB(model);

            sql.Append($" AS {join_inner_table} INNER JOIN {model.Left}{model.TableName}{model.Right} AS {join_outter_table} ON ");
            sql.Append($"{join_inner_table}.{model.Left}{model.PreSource}{model.Right}={join_outter_table}.{model.Left}{model.ColFunction(model.Tables[0])}{model.Right}");
            for (int i = 1; i < conditions.Length; i += 1)
            {
                sql.Append($" AND {join_outter_table}.");
                sql.Append(model.Left);
                if (model.ColFunction != null)
                {
                    sql.Append(model.ColFunction(model.Tables[i]));
                }
                else
                {
                    sql.Append(model.Tables[i]);
                }
                sql.Append(model.Right);

                sql.Append("=@");
                if (model.FilterFunction != null)
                {
                    sql.Append(model.FilterFunction(model.Tables[i]));
                }
                else
                {
                    sql.Append(model.Tables[i]);
                }
            }
            return(sql.ToString());
        }
        /// <summary>
        /// 获取删除语句
        /// </summary>
        /// <param name="filter">将参数化映射到标签中类的主键或其他字段上</param>
        /// <returns></returns>
        public string DeletePreRule(SqlRelationModel model, string pre)
        {
            DeleteTemplate delete = new DeleteTemplate();
            string         result = delete.DeleteWithCondition(model, pre);

            model.FilterFunction = null;
            return(result);
        }
        public string SelectEntitesTable(SqlRelationModel model)
        {
            SelectTemplate template = new SelectTemplate();
            StringBuilder  sql      = new StringBuilder();

            sql.Append(template.SelectAll(model.EntityModel));
            sql.Append(JoinRule(model, model.Tables));
            return(sql.ToString());
        }
        public string SelectCountSource(SqlRelationModel model)
        {
            CountTemplate template = new CountTemplate();
            StringBuilder sql      = new StringBuilder();

            model.UseDefaultFilter();
            sql.Append(template.SelectCount(model.EntityModel));
            sql.Append(JoinRule(model, model.Sources));
            model.ClearFilter();
            return(sql.ToString());
        }
        public string InsertRule(SqlRelationModel model)
        {
            var temp_model = model.ModelWithoutPrimary();

            temp_model.ResetMembers(model.Tables);

            InsertTemplate insert = new InsertTemplate();
            string         sql    = insert.Insert(temp_model);

            model.ClearFilter();
            return(sql);
        }
Beispiel #6
0
        public string UpdateRule(SqlRelationModel model, params string[] conditions)
        {
            UpdateTemplate template   = new UpdateTemplate();
            var            temp_model = model.CopyInstance();

            temp_model.FilterFunction = model.FilterFunction;
            temp_model.ResetMembers(model.PreTable);
            string sql = template.UpdateWithCondition(temp_model, conditions);

            model.ClearFilter();
            return(sql);
        }
Beispiel #7
0
 public static string GetB(SqlRelationModel model)
 {
     return($"{model.Left}V_{model.TableName}_TB{model.Right}");
 }
 public string DeleteAftTable(SqlRelationModel model)
 {
     return(DeleteAftRule(model, model.AfterTables));
 }
 public string DeleteAftSource(SqlRelationModel model)
 {
     model.FilterFunction = (item) => { return(model.SourceColumn(item)); };
     return(DeleteAftRule(model, model.AfterTables));
 }
        public string DeleteAftRule(SqlRelationModel model, string[] aft)
        {
            DeleteTemplate delete = new DeleteTemplate();

            return(delete.DeleteWithCondition(model, aft));
        }
 public string DeletePreTable(SqlRelationModel model)
 {
     return(DeletePreRule(model, model.PreTable));
 }
 public string DeletePreSource(SqlRelationModel model)
 {
     model.FilterFunction = (item) => { return(model.SourceColumn(item)); };
     return(DeletePreRule(model, model.PreTable));
 }
 public string InsertTable(SqlRelationModel parameter_model)
 {
     return(InsertRule(parameter_model));
 }
 public string InsertSource(SqlRelationModel parameter_model)
 {
     parameter_model.UseDefaultFilter();
     return(InsertRule(parameter_model));
 }
Beispiel #15
0
 public string UpdateSource(SqlRelationModel model)
 {
     model.UseDefaultFilter();
     return(UpdateRule(model, model.AfterTables));
 }
Beispiel #16
0
 public string UpdateTable(SqlRelationModel model)
 {
     return(UpdateRule(model, model.AfterTables));
 }