我有一个产品表,想要按字母顺序排序数据。但是,当我写这个查询时,他们仍然是id。我在谷歌检查了很多页面,但无法找到任何来源。
var product = Db.tablename
.Where(s => s.colum == DropDownList2.SelectedValue)
.OrderBy(s=> s.Name);
我有一个产品表,想要按字母顺序排序数据。但是,当我写这个查询时,他们仍然是id。我在谷歌检查了很多页面,但无法找到任何来源。
var product = Db.tablename
.Where(s => s.colum == DropDownList2.SelectedValue)
.OrderBy(s=> s.Name);
这个查询
var product = Db.tablename
.Where(s => s.colum == DropDownList2.SelectedValue)
.OrderBy(s=> s.Name);
在被要求之前不会被执行。所以你必须把它改成以下一个:
var product = Db.tablename
.Where(s => s.colum == DropDownList2.SelectedValue)
.OrderBy(s=> s.Name).ToList();
发生这种情况的原因是,实际上您刚刚声明了一个查询。我的意思是你没有执行它。这就是LINQ查询的本质,在技术术语中称为自定义执行。另一方面,如果你打电话给 ToList()
在查询结束时,您将触发立即执行此查询,结果将是a List
与...相同的类型 s.Name
。
您必须使用ToList来执行排序。
var product = Db.tablename
.Where(s => s.colum == DropDownList2.SelectedValue)
.OrderBy(s=> s.Name).ToList();
order by无效,只执行查询,ToList将对原始查询进行排序。