エンティティ フレームワーク - LINQ OrderBy が順序付けられません .. 何も変更されません .. なぜですか?

okwaves2024-01-25  8

次のコードで 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);

何も変更しないだけです...ページは結果をロードしています...しかし順序はありません...嗅ぎます

私は Try with (比較オブジェクトの作成 ...) を持っています:

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

結果は同じですが、順序はありません...

回避策はありますが、何が足りないのか疑問に思っています...

ご提案がございましたら、よろしくお願いいたします :-)



------------------------

戻り値を捨てないでくださいe. OrderBy 拡張メソッドは入力を変更しません。試してみてください:

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

表示された値が正しいと仮定すると、それが機能しない理由はありません。また、OrderBy が順序付けを台無しにする操作 (例: Distinct) の後にあることを確認してください。

コーディングを楽しんでください!

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。