Пример #1
0
        private static List <string> JoinEqualGenerator(Expression EqualExp, COASqlJoinTypes type)
        {
            var Column1Selected = Types.GetAllTypes(EqualExp);
            var list            = new List <string>();

            for (int i = 0; i <= Column1Selected.AndOr.Count; i++)
            {
                var left  = i * 2;
                var right = (i * 2 + 1);
                switch (type)
                {
                case COASqlJoinTypes.INNER:
                    list.Add($" INNER JOIN {Column1Selected.Class[left]} ON {Column1Selected.Class[left]}.{Column1Selected.Name[left]} = {Column1Selected.Class[right]}.{Column1Selected.Name[right]}");
                    break;

                case COASqlJoinTypes.LEFT:
                    list.Add($" LEFT JOIN {Column1Selected.Class[left]} ON {Column1Selected.Class[left]}.{Column1Selected.Name[left]} = {Column1Selected.Class[right]}.{Column1Selected.Name[right]}");
                    break;

                case COASqlJoinTypes.RIGHT:
                    list.Add($" RIGHT JOIN {Column1Selected.Class[left]} ON {Column1Selected.Class[left]}.{Column1Selected.Name[left]} = {Column1Selected.Class[right]}.{Column1Selected.Name[right]}");
                    break;

                default:
                    break;
                }
            }

            return(list);
        }
Пример #2
0
 public void Add(COASqlJoinData <T> a)
 {
     this.JoinQuery       = a.JoinQuery;
     this.SqlQuery        = a.SqlQuery;
     this.Lenght          = a.SqlQuery.Length;
     this.DataBaseType    = a.DataBaseType;
     this.OrderQuery      = a.OrderQuery;
     this.PrimaryKeyName  = a.PrimaryKeyName;
     this.SelectedColumns = a.SelectedColumns;
     this.TableName       = a.TableName;
     this.WhereQuery      = a.WhereQuery;
     joinType             = a.JoinType;
 }
Пример #3
0
        private COASqlJoinData <T> MainJoinGeneator <T1>(Expression SetTables, object obj, COASqlJoinTypes type = COASqlJoinTypes.INNER, COADataBaseTypes databasetype = COADataBaseTypes.Sql)
        {
            var returnData = new COASqlJoinData <T>();

            returnData.DataBaseType = databasetype;
            returnData.TableName    = TableName;
            returnData.SetJoinType(type);
            var Column1Selected = Types.GetAllTypes(SetTables);
            var Selectedlist    = new List <string>();

            if (Column1Selected.Name.Count == 0)
            {
                var Types = GetGenericTypeList(obj);

                for (int i = 1; i < Types.Length; i++)
                {
                    var Props = Types[i].GetProperties();
                    foreach (var prop in Props)
                    {
                        Selectedlist.Add($"{prop.ReflectedType.Name}.{prop.Name}");
                    }
                }
            }
            else
            {
                Selectedlist = Types.JoinBaseGenerator(Column1Selected);
            }

            returnData.SelectedColumns = Selectedlist;
            returnData.SqlQuery        = Types.JoinSqlGenerator <T1>(returnData.SelectedColumns);
            return(returnData);
        }
Пример #4
0
 public void SetJoinType(COASqlJoinTypes type)
 {
     joinType = type;
 }
Пример #5
0
 public COASqlJoinData(COASqlJoinTypes types = COASqlJoinTypes.INNER)
 {
     joinType = types;
 }