我收到此错误:
DbSortClause 表达式必须具有顺序可比的类型。参数名称:key | 在 System.Data.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation.ValidateSortClause(DbExpression key) 在 System.Data.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder.ToSortClause(DbExpression key) 在 System.Data.Objects.ELinq.ExpressionConverter.MethodCallTranslator .OrderByTranslatorBase.TranslateOneLambda(ExpressionConverter parent, DbExpressionBinding sourceBinding, DbExpression lambda) at System.Data.Objects.ELinq.ExpressionConverter.MethodCallTranslator.OneLambdaTranslator.Translate(ExpressionConverter parent, MethodCallExpression call, DbExpression& source, DbExpressionBinding& sourceBinding, DbExpression& lambda) at System.Data .Objects.ELinq.ExpressionConverter.MethodCallTranslator.OneLambdaTranslator。
1.Translate(ExpressionConverter parent, Expression linq) at System.Data.Objects.ELinq.ExpressionConverter.TranslateExpression(Expression linq) at System.Data.Objects.ELinq.ExpressionConverter.Convert() at System.Data.Objects.ELinq.ELinqQueryState.GetExecutionPlan(Nullable
1 forMergeOption) 在 System.Data.Objects.ObjectQuery1.GetResults(Nullable
1 forMergeOption) 在 System.Data.Objects.ObjectQuery1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() at System.Data.Entity.Internal.Linq.InternalQuery
1.GetEnumerator() 在 System.Data.Entity.Infrastructure.DbQuery1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator() at System.Collections.Generic.List
1..ctor(IEnumerable1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable
1 source) 在 MvcMusicStore.Controllers .StoreManagerController.Index(String sortOrder) 在
尝试此代码时
var albums = db.Albums.Include(a => a.Genre).Include(a => a.Artist);
switch (sortOrder) {
case "Artist desc":
albums = albums.OrderByDescending(o => o.Artist);
break;
case "Title desc":
albums = albums.OrderByDescending(o => o.Title);
break;
case "Title":
albums = albums.OrderBy(o => o.Title);
break;
case "Genre desc":
albums = albums.OrderByDescending(o => o.Genre);
break;
case "Genre":
albums = albums.OrderBy(o => o.Genre);
break;
default:
albums = albums.OrderBy(o => o.Artist);
break;
}
return View(albums.ToList());
我找不到对其进行排序的方法。