2010-03-31 36 views
1
var result = db.PhotoAlbums.Select(albums => new PhotoAlbumDisplay 
      { 
       AlbumID = albums.AlbumID, 
       Title = albums.Title, 
       Date = albums.Date, 
       PhotoID = albums.Photos.Select(photo => photo.PhotoID).FirstOrDefault().ToString() 
      }); 

无论我试图将orderby albums.AlbumID descending都收到错误。有人知道解决方案吗?
谢谢!哪里可以在此linq-to-sql查询中插入'orderby'表达式

回答

2

这应该工作:

var result = db.PhotoAlbums.Select(albums => new PhotoAlbumDisplay 
      { 
       AlbumID = albums.AlbumID, 
       Title = albums.Title, 
       Date = albums.Date, 
       PhotoID = albums.Photos.Select(photo => photo.PhotoID).FirstOrDefault().ToString() 
      }) 
      .OrderByDescending(item => item.AlbumID); 

在查询语法:

var result = from albums in db.PhotoAlbums 
      orderby albums.AlbumID descending 
      select new PhotoAlbumDisplay 
      { 
       AlbumID = albums.AlbumID, 
       Title = albums.Title, 
       Date = albums.Date, 
       PhotoID = albums.Photos.Select(photo => photo.PhotoID).FirstOrDefault().ToString() 
      }; 
+0

+1只是写这 – 2010-03-31 20:58:45

+0

它的工作原理...和这个其他查询版本正是我所需要的!谢谢! – 2010-03-31 20:59:16

1

如果你想使用查询语法,你必须从“从X选择”开始,并从中工作。在这种情况下,使用.OrderBy()方法对结果进行排序会更容易。

1

这是你在找什么?

var result = db.PhotoAlbums.Select(albums => new PhotoAlbumDisplay 
     { 
      AlbumID = albums.AlbumID, 
      Title = albums.Title, 
      Date = albums.Date, 
      PhotoID = albums.Photos.Select(photo => photo.PhotoID).FirstOrDefault().ToString() 
     }) 
     .OrderByDescending(a=>a.AlbumID); 
+0

是啊......艾哈迈德已经给了我答案:http://stackoverflow.com/questions/2556378/where-to-insert-orderby-expression-in-this-linq-to-sql-query/2556397#2556397 .. 。谢谢! – 2010-03-31 21:00:26