Как заказать в LINQ to Entities (EF4.1), когда я знаю только имя свойства во время выполнения? - PullRequest
0 голосов
/ 01 сентября 2011

У меня есть запрос linq объектов известного типа, и мне нужно отсортировать его на основе свойства объекта. Проблема в том, что я знаю имя свойства только во время выполнения и в виде строки.

ех.

IQueryable<Thing> thing = from t in ctx.Things select t;
t.OrderBy(t => t.Name);   // This would work if I knew the property at compile time...
t.OrderBy("Name asc");    // But this is what I really need!  and it doesn't work.

Есть ли способ сделать это для LINQ to Entities? Я использую Entity Framework 4.1

1 Ответ

0 голосов
/ 06 февраля 2012

Есть два

  1. .OrderBy(m => m.Name)
  2. .OrderByDescending(m => m.Name)

Первый представляет восходящий, другой нисходящий.

Надеюсь, это поможет.

Как насчет попробовать это!Посмотрим поможет ли

    Expression orderByProperty = Expression.Property(prm, sortBy);

    // get the paged records
    IQueryable<PostingListItemDto> query = be.buskerPosting
    .Where(posting => posting.buskerAccount.cmsMember.nodeId == m.Id)
    .OrderBy(orderByExpression)
...