Это старый поток, но другое решение, которое я предпочитаю, просто обновляет cityId и не назначает модель дыры City to Employee ... для этого Employee должен выглядеть так:
public class Employee{
...
public int? CityId; //The ? is for allow City nullable
public virtual City City;
}
Тогда достаточно присвоить:
e1.CityId=city1.ID;