Как отменить запрос LINQ to SQL - PullRequest
4 голосов
/ 21 июня 2011

Я хочу отменить вывод запроса 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>"));
    }
}

Есть ли другой способ изменить это?

Ответы [ 3 ]

14 голосов
/ 21 июня 2011

Если вы пытаетесь показать новости, почему бы не использовать OrderBy (или OrderByDescending), чтобы получить элементы в нужном порядке, а не в обратном порядке кластеризованного индекса в базе данных.

Я не могу вспомнить ни одного случая, когда мне нужно было бы использовать Reverse в Linq to Sql.

Пример (извините, если Синтаксис выключен, я предпочитаю Ламду):

var News = 
     (from news in db.News   
     orderby news.Date descending                 
     select new 
         {
               ID = news.NewsID,
               kort = news.Short
         });
6 голосов
/ 21 июня 2011

Я предполагаю, что SQL Server не знает, как преобразовать Reverse в команду T-SQL, поэтому вы получаете исключение. Возможно, вам понадобится вывести результаты запроса из базы данных, , а затем обратить его.

var News = (from news in db.News                   
               select new 
               {
               ID = news.NewsID,
               kort = news.Short
               }).AsEnumerable().Reverse();
5 голосов
/ 21 июня 2011

Вопрос: что вы меняете?

Хранилище SQL не определяет определенный порядок в таблице новостей, поэтому не имеет смысла просто «переворачивать» результаты запроса без какого-либо определенного порядка.

Как насчет этого?

var News = from news in db.News    
           order by news.PostedTime descending               
           select new 
           {
               ID = news.NewsID,
               kort = news.Short
           };
...