I'm not sure if this is the same as what you meant in your post, but in L2S you can use .Except().
The following creates a list called addsList from all rows in proposedList that do not exist in unchangedList:

Thanks so much! I had the relation built between entities and the join wasn't working like I expected even though according to all the other websites I user join properly.
so when i read:
"The trick was in the second line:from ch in h.CityHubs" it all made sense.
Thanks!