【问题标题】:convert select query to linq on sql server 2008在 sql server 2008 上将选择查询转换为 linq
【发布时间】:2013-06-04 20:15:49
【问题描述】:

我有两张桌子:Album(AlbumId, AlbumName)Photo(PhotoId, PhotoName, AlbumId)

我有:

 select top 1 Photo.PhotoId
 from Photo
 where Album.AlbumId=Photo.AlbumId
 order by NEWID()

这是随机返回一条记录

我想把它转换成Linq to sql。我试过了,但没有成功。

【问题讨论】:

  • 是的。我试过了。我开始学习 Linq。请帮助我!
  • 你需要使用linq join。
  • 请展示您的尝试。然后我们就知道“不成功”是什么意思了。

标签: linq sql-server-2008 linq-to-sql sql-to-linq-conversion


【解决方案1】:

试试这个:

var photoId = ( from photo in collecPhotos
                join album in collecAlbums on photo.AlbumId equals album.AlbumId
                orderby NEWID()
                select photo.PhotoId).First();

其中collecPhotoscollecAlbums 是您的照片和相册实体的集合,即表格中的数据。所以它也可以是myDbContext.PhotosmyDbContext.Albums,其中myDbContext 是你的Linq-to-Sql DataContext。

【讨论】:

    【解决方案2】:

    我相信您需要加入这些表格。此外,这取决于您要创建随机 Guid 时使用的语言 - 我的示例使用 C#。在查询语法中,它应该是这样的:

    from p in Photo
    join a in Album on a.AlbumId equals p.AlbumId
    orderby Guid.NewGuid()
    take 1
    select p.PhotoId
    

    【讨论】:

      猜你喜欢
      • 2015-11-29
      • 1970-01-01
      • 2018-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-14
      • 1970-01-01
      相关资源
      最近更新 更多