Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LINQ OrderBy not ordering。。什么也不改变。。为什么?_Linq_Entity Framework_Sql Order By_Iqueryable - Fatal编程技术网

LINQ OrderBy not ordering。。什么也不改变。。为什么?

LINQ OrderBy not ordering。。什么也不改变。。为什么?,linq,entity-framework,sql-order-by,iqueryable,Linq,Entity Framework,Sql Order By,Iqueryable,知道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 s

知道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 };
只是什么都不改变,。。。页面正在加载结果,显示。。。但是没有命令。。。嗅

我尝试过(创建比较器对象…):

同样的结果,没有排序

我确实有解决办法,但只是想知道遗漏了什么


任何建议都将不胜感激:-)

不要丢弃返回值。
OrderBy
扩展方法不改变输入。尝试:

newView = newView.OrderBy(x => x.viewed);
假设所查看的
值正确,没有理由认为这不起作用。此外,请确保
OrderBy
是在任何会破坏订购的操作(例如
Distinct
)之后进行的

快乐编码

如果结果是只读结果,请考虑在orderby()之后使用asnotracking()

例如:

query = query.OrderByDescending(x => x.Rating).AsNoTracking();

超级的!工作很好,没有想到回报,非常感谢,热爱这份工作;-)我的问题是我在一个不同的字段之前就有了它。我是按一个没有显示的字段排序的
newView = newView.OrderBy(x => x.viewed);
query = query.OrderByDescending(x => x.Rating).AsNoTracking();