Créer LINQ to entities OrderBy expression à la volée

J'essaie d'ajouter de la orderby expression à la volée. Mais lorsque la requête ci-dessous est exécutée j'obtiens l'exception suivante:

Système.NotSupportedException: Impossible
pour créer une valeur constante de type
Fermeture type". Seuls les types primitifs
("comme Int32, String et Guid')
sont pris en charge dans ce contexte.

La chose étrange est, je suis à la requête exactement ces types de primitives.

string sortBy = HttpContext.Current.Request.QueryString["sidx"];
ParameterExpression prm = Expression.Parameter(typeof(buskerPosting), "posting");
Expression orderByProperty = Expression.Property(prm, sortBy);

//get the paged records
IQueryable<PostingListItemDto> query =
   (from posting in be.buskerPosting
    where posting.buskerAccount.cmsMember.nodeId == m.Id
    orderby orderByProperty
    //orderby posting.Created 
    select new PostingListItemDto { Set = posting }).Skip<PostingListItemDto>((page -   1) * pageSize).Take<PostingListItemDto>(pageSize);

Espère que quelqu'un peut jeter un peu de lumière sur ce!

OriginalL'auteur AyKarsi | 2010-05-15