C#IQueryable检查OrderBy for null ckeck

时间:2016-02-13 09:45:26

标签: c#

IQueryable throw"指定的参数超出了有效值的范围。"

代码:

public IQueryable<T> ApplyOrder(IQueryable<T> items, GridSortDirection direction)
        {
            switch (direction)
            {
                case GridSortDirection.Ascending:
                    return items.OrderBy(_expression);
                case GridSortDirection.Descending:
                    return items.OrderByDescending(_expression);
            }
        }

其中_expression的类型为:

Expression<Func<T, TKey>> expression

这是

{x => x.customers.studentschoolenrolments.ElementAt(0).schools.Name}

我不想要这个例外。是否可以检查元素是否存在以及是否返回空字符串?

我尝试使用如下方法:

public static bool IsNullOrEmpty<T>(this IEnumerable<T> items) {
    return items == null || !items.Any();
}

但我不知道如何在items.OrderBy(_expression);

中使用它

1 个答案:

答案 0 :(得分:2)

我的头脑喜欢混淆IEnumerableIQueryable,所以这可能是胡说八道(但我没有看到任何db-tag)。你不能像这样使用FirstOrDefault

{x => x.customers.studentschoolenrolments.FirstOrDefault()?.schools.Name ?? string.Empty}