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); }
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; }
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); }
public void SetJoinType(COASqlJoinTypes type) { joinType = type; }
public COASqlJoinData(COASqlJoinTypes types = COASqlJoinTypes.INNER) { joinType = types; }