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());
同じ結果、注文なし.。
回避策はありますが、何が欠けているのか疑問に思っています..。
どんな提案でも大歓迎です:-)
戻り値を捨てないでください。 OrderBy
拡張メソッドはdoes not入力を変更します。試してください:
newView = newView.OrderBy(x => x.viewed);
viewed
の値が正しいと仮定すると、それが機能しない理由はありません。また、OrderBy
が順序を台無しにする操作(例:Distinct
)の後にあることを確認してください。
ハッピーコーディング!