Вопрос по linq, entity-framework – LINQ OrderBy не заказываете .. ничего не меняется .. почему?

17

Любая идея, почему LINQ OrderBy не работает в следующем коде (нет ошибок, но метод не сортирует ...)

Сначала мой собственный тип

public class IQLinksView
    {
        public int id { get; set; }
        public int catid { get; set; }
        public int? viewed {get;set;}
        public string name {get;set;}
        public string desc {get;set;}
        public string url {get;set;}
        public string pic {get;set;}
        public string cat {get;set;}
    }

тогда запрос:

IQueryable<IQLinksView> newView = 
              from links in this.emContext.tbl_otherlinks
              select new IQLinksView { id = links.pklinkid, catid =
              links.tbl_catgeory.pkcategoryid, viewed = links.linkviewed, name = links.linkname, 
              desc = links.linkdesc, pic = links.linkpicture,   url = links.linkurl, cat =
              links.tbl_catgeory.categoryname };

Пока здесь все хорошо :-), но потом

newView.OrderBy(x => x.viewed);

просто ничего не меняется, ... страница показывает результаты загрузки ... но не упорядочивает ... снифф

У меня есть попробовать с (создание объекта сравнения ...):

newView.OrderBy(x => (Int32)x.viewed, new CompareIntegers());

тот же результат, без заказа ...

У меня есть обходные пути, но мне просто интересно, чего не хватает ....

Любые предложения будут оценены большое спасибо :-)

Ваш Ответ

1   ответ
32

Не выбрасывайте возвращаемое значение.OrderBy метод расширения делаетnot мутировать вход. Пытаться:

newView = newView.OrderBy(x => x.viewed);

Нет причин, по которым это не сработает, если предположить, чтоviewed значение верное. Кроме того, убедитесь, чтоOrderBy после любых операций (например,Distinct) который разрушит порядок.

Удачного кодирования!

Супер! Работает нормально, не думал о возврате, предполагал мутацию user1415838
Я заказывал по полю, которое не отображалось
Моя проблема была в том, что я имел это раньше
Большое спасибо, люблю эту работу ;-) user1415838
Аааа, это была именно моя глупая простая проблема. Спасибо.

Похожие вопросы