将SQL查询转换为LINQ

时间:2010-03-31 12:48:08

标签: sql linq-to-sql translate

这位用户已经在几分钟之前提出了正确的重复sql and linq query

PhotoAlbums
ALBUMID
标题
日期

Photos表:
PHOTOID
标题
日期
ALBUMID

SELECT     AlbumID, Title, Date,
                          (SELECT     TOP (1) PhotoID
                            FROM          Photos AS c
                            WHERE      (AlbumID = a.AlbumID)) AS PhotoID
FROM         PhotoAlbums AS a

我需要用LINQ-to-SQL编写的这个查询。提前致谢

2 个答案:

答案 0 :(得分:3)

你可以这样做:

var result = 
   yourContext.PhotoAlbums.Select(a => 
      new {a.AlbumId, a.Title, a.Date, a.Photos.First().PhotoId }
   );

另外,LinqPad是一个非常好的工具,可以帮助你做到这一点。

答案 1 :(得分:2)

假设您在DBML文件中定义了PhotoAlbumsPhotos之间的关系,您可以这样做:

var albums = dataContext.PhotoAlbums.Select(album => new {
    AlbumId = album.AlbumId,
    Title = album.Title
    Date = album.Date,
    PhotoId = album.Photos.Select(photo => photo.PhotoId).FirstOrDefault()
});