private void Clear() { SqlBuilder.Clear(); JoinRelations.Clear(); WhereClause.Clear(); Parameters.Clear(); OrderByFields.Clear(); GroupByFields.Clear(); SelectFields.Clear(); }
/// <summary> /// 内连接 参数决定顺序 /// </summary> /// <typeparam name="TLeft"></typeparam> /// <typeparam name="TRight"></typeparam> /// <param name="on"></param> /// <returns></returns> public JoinQuery InnerJoin <TLeft, TRight>(Expression <Func <TLeft, TRight, bool> > on) where TLeft : class, new() where TRight : class, new() { JoinRelation link = new JoinRelation { JoinType = JoinType.Inner }; SqlVisitor visitor = new SqlVisitor(DbContext.DataBase.DBType, callIndex++, WithAlias); link.LeftTable = Caches.EntityInfoCache.Get(typeof(TLeft)).TableName; if (WithAlias) { link.LeftTableAlias = on.Parameters[0].Name; } link.RightTable = Caches.EntityInfoCache.Get(typeof(TRight)).TableName; if (WithAlias) { link.RightTableAlias = on.Parameters[1].Name; } link.OnSql = visitor.Translate(on); Parameters.AddRange(visitor.Parameters); JoinRelations.Add(link); return(this); }