Linq按字母顺序排序

Ser*_*ion 14 c# linq asp.net

我有一个产品表,想要按字母顺序排序数据.但是当我写这个查询时,他们仍然是来自id.我在谷歌检查了很多页面,但无法找到任何来源.

var product = Db.tablename
                .Where(s => s.colum == DropDownList2.SelectedValue)
                .OrderBy(s=> s.Name);
Run Code Online (Sandbox Code Playgroud)

Chr*_*tos 21

这个查询

var product = Db.tablename
                .Where(s => s.colum == DropDownList2.SelectedValue)
                .OrderBy(s=> s.Name);
Run Code Online (Sandbox Code Playgroud)

在被要求之前不会被执行.所以你必须把它改成以下一个:

var product = Db.tablename
                .Where(s => s.colum == DropDownList2.SelectedValue)
                .OrderBy(s=> s.Name).ToList();
Run Code Online (Sandbox Code Playgroud)

发生这种情况的原因是实际上你刚刚声明了一个查询.我的意思是你没有执行它.这就是LINQ查询的本质,在技术术语中称为deffered execution.另一方面,如果ToList()在查询结束时调用该方法,则会触发立即执行此查询,并且其结果将与其具有List相同的类型s.Name.

  • 将类型更改为数据库中的nvarchar.这不会影响您的数据,它将解决您的问题.我对这个错误一无所知,但是我做了一些谷歌搜索后发现这个http://forums.asp.net/t/1481629.aspx?Help+Again,其中陈述了上述建议. (3认同)