Linq: Quelle est la différence entre == et égaux dans une jointure?

Je me suis toujours demandé pourquoi il y a un equals mot-clé dans linq rejoint plutôt que d'utiliser l'opérateur==.

Property deadline =
(from p in properties
 join w in widgets
    on p.WidgetID equals w.ID
 select p).First();

Au lieu de

Property deadline =
(from p in properties
 join w in widgets
    on p.WidgetID == w.ID
 select p).First();

[MODIFIER] Reformulé la question et a révisé les exemples.