| | |
| | | var entityType = typeof(T); |
| | | int index = 0; |
| | | |
| | | var props = entityType.GetProperties(); |
| | | foreach (var order in orders) |
| | | { |
| | | if (string.IsNullOrEmpty(order.Property)) continue; |
| | | |
| | | // 获取排序字段的属性信息 |
| | | var propertyInfo = entityType.GetProperty(order.Property); |
| | | var propertyInfo = props.FirstOrDefault(it => it.Name.Equals(order.Property, StringComparison.OrdinalIgnoreCase)); |
| | | if (propertyInfo == null) throw Oops.Oh(EnumErrorCodeType.s404, $"该排序字段{order.Property}"); |
| | | |
| | | // 创建表达式树 |
| | |
| | | if (index == 0) |
| | | { |
| | | // 首次排序 |
| | | methodName = order.Order == EnumPagedListOrder.Ascending |
| | | ? "OrderBy" |
| | | methodName = order.Order == EnumPagedListOrder.Ascending |
| | | ? "OrderBy" |
| | | : "OrderByDescending"; |
| | | } |
| | | else |
| | | { |
| | | // 二次及以后排序 |
| | | methodName = order.Order == EnumPagedListOrder.Ascending |
| | | ? "ThenBy" |
| | | methodName = order.Order == EnumPagedListOrder.Ascending |
| | | ? "ThenBy" |
| | | : "ThenByDescending"; |
| | | } |
| | | |