Tho*_*ian 4 c# asp.net linq-to-sql
我想反转LINQ to SQL查询的输出.和.Reverse()不起作用,只是崩溃了页面.
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>"));
}
}
Run Code Online (Sandbox Code Playgroud)
还有另一种方法可以扭转它吗?
Dav*_*haw 14
如果您要尝试显示新闻,为什么不使用OrderBy(或OrderByDescending)按照您想要的顺序获取项目,而不是数据库中聚簇索引的相反顺序.
我无法想到在Linq to Sql中需要使用Reverse的任何情况.
示例(抱歉,如果语法关闭,我更喜欢Lamda的):
var News =
(from news in db.News
orderby news.Date descending
select new
{
ID = news.NewsID,
kort = news.Short
});
Run Code Online (Sandbox Code Playgroud)
我猜SQL Server不知道如何将Reverse转换为T-SQL命令,所以你得到一个例外.您可能需要从数据库中提取查询结果,然后将其反转.
var News = (from news in db.News
select new
{
ID = news.NewsID,
kort = news.Short
}).AsEnumerable().Reverse();
Run Code Online (Sandbox Code Playgroud)
问题是:你在逆转什么?
SQL存储没有在News表上定义特定的顺序,因此简单地"反转"查询结果而没有任何已定义的顺序是没有意义的.
这样的事怎么样?
var News = from news in db.News
order by news.PostedTime descending
select new
{
ID = news.NewsID,
kort = news.Short
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5331 次 |
| 最近记录: |