LINQ Lambda Join Error - não pode ser inferido a partir do uso

Eu tive problemas juntando dois DbSets e continuei a receber o erro "não pode ser inferido". Eu me esforcei para encontrar uma solução, então pensei em compartilhar minha resposta simples. Existem vários posts ótimos de Jon Skeet e outros, mas a maioria das respostas estava acima da minha cabeça.

Aqui está o código que estava me causando problemas:

using(var db = new SomeDataContext())
    {
    db.DemandData
        .Where(demand=> demand.ID == SearchID)
        .Join(db.CUST_ORDER_LINE,
            supply=> new { supply.LINE, supply.SALES_ORDER_ID },
            demand=> new { demand.LINE_NO, demand.CUST_ORDER_ID },
            (supply, demand) => new { custOrderLineReturn = demand })
        .Select(s => s.custOrderLineReturn )
        .ToList();
    }

questionAnswers(1)

yourAnswerToTheQuestion