Beispiel #1
0
        public static List <OrderByClip> GetOrderByClips(string order, string orderName)
        {
            List <OrderByClip> orderByClips = new List <OrderByClip>();

            if (!string.IsNullOrWhiteSpace(order) && !string.IsNullOrWhiteSpace(orderName))
            {
                OrderByOperater operater = OrderByOperater.ASC;

                if (order.ToLower() == "desc")
                {
                    operater = OrderByOperater.DESC;
                }
                orderByClips.Add(new OrderByClip(orderName, operater));
            }

            return(orderByClips);
        }
Beispiel #2
0
 public OrderByClip(Field field, OrderByOperater orderBy)
     : this(field.TableFieldName, orderBy)
 {
 }
Beispiel #3
0
 public OrderByClip(string fieldName, OrderByOperater orderBy)
 {
     orderByClip.Add(fieldName, orderBy);
 }
 private static OrderByClip ToOrderByClipChild(System.Linq.Expressions.Expression exprBody, OrderByOperater orderBy)
 {
     if (exprBody is MemberExpression)
     {
         var         e  = (MemberExpression)exprBody;
         OrderByClip gb = OrderByClip.None;
         if (orderBy == OrderByOperater.DESC)
         {
             gb = gb && new Field(e.Member.Name, e.Expression.Type.Name).Desc;
         }
         else
         {
             gb = gb && new Field(e.Member.Name, e.Expression.Type.Name).Asc;
         }
         return(gb);
     }
     if (exprBody is NewExpression)
     {
         var         exNew = (NewExpression)exprBody;
         var         type  = exNew.Constructor.DeclaringType;
         var         list  = new List <string>(exNew.Arguments.Count);
         OrderByClip gb    = OrderByClip.None;
         foreach (MemberExpression member in exNew.Arguments)
         {
             if (orderBy == OrderByOperater.DESC)
             {
                 gb = gb && new Field(member.Member.Name, member.Expression.Type.Name).Desc;
             }
             else
             {
                 gb = gb && new Field(member.Member.Name, member.Expression.Type.Name).Asc;
             }
         }
         return(gb);
     }
     if (exprBody is UnaryExpression)
     {
         var ueEx = (UnaryExpression)exprBody;
         return(ToOrderByClipChild(ueEx.Operand, orderBy));
     }
     throw new Exception("暂时不支持的Order by lambda写法!请使用经典写法!");
 }
Beispiel #5
0
        public OrderByClip(Field field, OrderByOperater orderBy)
            : this(field.TableFieldName, orderBy)
        {

        }
Beispiel #6
0
 public OrderByClip(string fieldName, OrderByOperater orderBy)
 {
     orderByClip.Add(fieldName, orderBy);
 }
Beispiel #7
0
 public OrderByOperation(string fieldName, OrderByOperater orderBy)
 {
     orderByOperation.Add(fieldName, orderBy);
 }