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);
答案 0 :(得分:2)
我的头脑喜欢混淆IEnumerable
和IQueryable
,所以这可能是胡说八道(但我没有看到任何db-tag)。你不能像这样使用FirstOrDefault
:
{x => x.customers.studentschoolenrolments.FirstOrDefault()?.schools.Name ?? string.Empty}