Как я могу заказать производное свойство в linq to sql? - PullRequest
0 голосов
/ 24 марта 2011

У меня есть свойство Total, которое получается из других значений в моем объекте данных. Когда я пытаюсь использовать это свойство в выражении order by в linq to sql, я получаю следующее: член '...' не поддерживает перевод в SQL. Что имеет смысл, но есть ли обходной путь для этого сценария? Спасибо!

1 Ответ

2 голосов
/ 24 марта 2011

Вы можете вызвать запрос, а затем выполнить предложение OrderBy().

var items = context.Tables.ToList().OrderBy(x=>x.Total);

Вы можете сделать это, поскольку после вызова .ToList() вы будете использовать linq для объектов.

Поскольку Брокен упоминает, что это может работать не во всех случаях, другим возможным решением было бы воспроизвести ваш общий расчет в вашей .Select()

заметке , мой синтаксис можетнемного поторопитесь, не держите VS со мной :)

var items = context.Tables.Select(t=> new {t.Item1, Total=(t.Price + t.Tax)})
                          .OrderBy(t=>t.Total);

Теперь, предоставляя проекцию такого типа, вы больше не получите Table, но, возможно, это вариант.

...