score:1

Accepted answer
 var query2 = _context.users
    .where(u => u.username == username)
    .join(_context.userroles, u => u.userid, ur => ur.userid, (u,ur) => ur.role)
    .toarray();

score:1

var userswiththeiruserroles = dbcontext.users

    // keep only the users with a specific username
    .where(user => user.username == username)

    // fetch some properties of the remaining users and their userroles
    .groupjoin(dbcontext.userroles,

        user => user.id,               // from each user take the id
        userrole => userrole.userid,   // from each userrole take the foreign key

        // parameter resultselector: take each user, with its zero or more userroles
        // to make one new:
        (user, userrolesofthisuser) => new
        {
            // select only the user parameters that you plan to use:
            id = user.id,
            address = user.address,
            ...

            // select the zero or more user roles of this user
            userroles = userrolesofthisuser.select(userrole => new
            {
                // select only the properties that you plan to use
                id = userrole.id,
                description = userrole.description,
                ...

                // not needed, you've already got the value:
                // userid = userrole.userid,
            })
            .tolist(),
        });

Related Query

More Query from same tag