Entity Framework Core / SQLite: GroupJoin después de unir resultados "aplanados"

Utilizando Entity Framework Core 2.1 y una base de datos SQLite, obtengo un comportamiento diferente de LINQ GroupJoin si lo uso después de otra Join. No está claro si esto es un error o si hay algo que estoy pasando por alto.

He creado un proyecto VS2017 mínimo para reproducir esto, que se puede encontrar aquí:
https: //gitlab.com/haddoncd/EntityFrameworkGroupJoinIssu

En este ejemplo, obtengo un objeto para cada fila en la tabla Blog, cada uno con múltiples PostTitles:

db.Blogs
    .GroupJoin(
        db.Posts,
        s => s.BlogId,
        p => p.BlogId,
        (s, ps) => new
        {
            s.BlogId,
            s.BlogTitle,
            PostTitles = ps.Select(p => p.PostTitle),
        }
    )
    .OrderBy(x => x.BlogId))

Pero en este ejemplo, los resultados se "aplanan": obtengo un objeto para cada par Blog-Post como lo haría con una combinación externa SQL convencional:

db.Subscriptions
    .Join(
        db.Blogs,
        s => s.BlogId,
        b => b.BlogId,
        (s, b) => new
        {
            s.SubscriptionId,
            b.BlogId,
            b.BlogTitle,
        }
    )
    .GroupJoin(
        db.Posts,
        x => x.BlogId,
        p => p.BlogId,
        (x, ps) => new
        {
            x.SubscriptionId,
            x.BlogTitle,
            PostTitles = ps.Select(p => p.PostTitle),
        }
    )
    .OrderBy(x => x.SubscriptionId))

Respuestas a la pregunta(0)

Su respuesta a la pregunta