public override Tuple <string, IDbDataParameter[]> GenerateTopCountSqlText(int topCount, Expression <Func <T, bool> > filterExpression, Expression <Func <IQueryable <T>, IQueryable <T> > > orderByExpression)
        {
            ResolveExpression resolve = ResolveToSql(filterExpression);

            StringBuilder strSql = new StringBuilder();

            string tableName = GetTableName();

            strSql.AppendFormat("Select * from {0}", tableName);
            strSql.AppendFormat(" Where {0}", resolve.SqlWhere);

            if (orderByExpression != null)
            {
                var orderby = AiExpressionWriterSql.BizWhereWriteToString(orderByExpression, AiExpSqlType.aiOrder);
                strSql.AppendFormat(" Order by {0} LIMIT {1},{2};", orderby, 0, topCount);
            }
            else
            {
                strSql.AppendFormat(" LIMIT {0},{1};", 0, topCount);
            }

            var sqlText = strSql.ToString();

            return(new Tuple <string, IDbDataParameter[]>(sqlText, resolve.Paras));
        }
 public void ResolveToOrder(Expression expression)
 {
     SqlOrder = AiExpressionWriterSql.BizWhereWriteToString(expression, AiExpSqlType.aiOrder);
 }