LINQ加入顶部(1)

时间:2016-06-14 11:28:32

标签: entity-framework linq

我再次为LINQ查询的语法苦苦挣扎。

我看了LINQ Join on top 1,但我还是很困惑!

用户可以拥有0-n张照片。

我有我需要的SQL但无法弄清楚如何在LINQ中实现它。 SQL是这样的:

SELECT   User.Name, Photo.ImageUri
FROM     User
LEFT OUTER JOIN     Photo
ON       Photo.Id =
         (
         SELECT  TOP 1 Id 
         FROM    Photo
         WHERE   UserId = User.Id
         )

我正在使用Entity Framework(.NET Core),并尝试了以下内容:

        var users = _context.Users.Select(x => new
        {
            name= x.Name,
            photo = x.Photos.Select(c => c.ImageUri).FirstOrDefault()
        });

这个问题是每个用户都会在照片上创建一个SELECT。我正在寻找一种解决方案,不需要为每个用户记录在数据库上进行额外的查询。

0 个答案:

没有答案