如何反转LINQ到SQL查询
本文关键字:SQL 查询 LINQ 何反转 | 更新日期: 2023-09-27 17:59:50
我想反转LINQ到SQL查询的输出。和.RReverse()不起作用,只是使页面崩溃。
protected void Page_Load(object sender, EventArgs e)
{
NewsDataContext db = new NewsDataContext();
var News = from news in db.News
select new
{
ID = news.NewsID,
kort = news.Short
};
foreach (var newa in News)
{
Panel1.
Controls.
Add(new LiteralControl(newa.kort +
"</br>" +
"<a href=Full.aspx?id=" +
newa.ID +
">Read The full Article</a>"));
}
}
还有其他方法可以扭转这种局面吗?
如果您要显示的是新闻,为什么不使用OrderBy(或OrderByDescending)按您想要的顺序获取项目,而不是按数据库中聚集索引的相反顺序。
我想不出在任何情况下需要在Linq到Sql中使用Reverse。
示例(对不起,如果语法关闭,我更喜欢Lamda的):
var News =
(from news in db.News
orderby news.Date descending
select new
{
ID = news.NewsID,
kort = news.Short
});
我猜SQL Server不知道如何将Reverse转换为t-SQL命令,所以会出现异常。您可能需要从数据库中提取查询结果,然后将其反转。
var News = (from news in db.News
select new
{
ID = news.NewsID,
kort = news.Short
}).AsEnumerable().Reverse();
问题是:你在逆转什么?
SQL存储没有在News表上定义特定的顺序,因此简单地"反转"查询结果而不定义任何顺序是没有意义的。
这样的怎么样?
var News = from news in db.News
order by news.PostedTime descending
select new
{
ID = news.NewsID,
kort = news.Short
};