Q:

How to select the organisation and it's next event?

I have the two tables in my SQL Server database, organisation and event. 
One organisation has multiple events. Each event has it's own date. 
I'm trying to retrieve the next/upcoming events date with it's organisation's name. The next event is where the events date equals today or the days after.
I tried something like this (which obviously doesn't work):
var queryResults = (from o in context.Organisations
             join e in context.Events on o.Id equals e.Organisation.Id
             where e.PremiereDateTime >= DateTime.UtcNow
             orderby e.PremiereDateTime ascending
             select o, e);

I tried to do a group by, but I failed. I made it work with a plain T-SQL query, but I want to do it with Entity Framework.
UPDATE
I forgot to mention that I'm trying to select the organisation's name only once with the date of the next event. Each organisation should have only the next upcoming event.
UPDATE #2
Desired output:

organisation1 next event: date3
organisation2 next event: date4

UPDATE #3
This is what I have right now:
var result = from org in context.Organisations
             join sorg in context.SubOrganisations on org.Id equals sorg.Organisation.Id into sorg2
             from s in sorg2.DefaultIfEmpty()
             join ev in context.Events on s.Id equals ev.SubOrganisation.Id into ev2
             from e in ev2.DefaultIfEmpty()
             select new
                 {
                    Name = org.Name,
                    UpcomingEvent = (from ee in s.Events
                                     where ee.PremiereDateTime >= DateTime.UtcNow
                                     orderby ee.PremiereDateTime ascending
                                     select ee).FirstOrDefault()
                };

A:

You can do something like this:
var result =
    context
    .Organisations
    .Select(org =>
        new
        {
            Name = org.Name, //Assuming that you have a `Name` property on Organisation
            UpcommingEvent = 
                org.Events
                .Where(e => e.PremiereDateTime >= DateTime.UtcNow)
                .OrderBy(e => e.PremiereDateTime)
                .FirstOrDefault()
        })
    .ToList();

This starts from organizations. For each one, it selects its name and the first event that starts after DateTime.UtcNow.
Please note that UpcommingEvent would be null for organizations that don't have an upcoming event.
Here is how the same query can be done with query syntax:
var result =
    from org in context.Organisations
    select new
    {
        Name = org.Name,
        UpcommingEvent = (from e in org.Events
            where e.PremiereDateTime >= DateTime.UtcNow
            orderby e.PremiereDateTime ascending
            select e).FirstOrDefault()

    };

