Вы не можете прикреплять объекты, извлеченные из одного текста данных, к другому, это не поддерживается Linq-to-SQL.Вам необходимо каким-то образом отделить объекты от их исходного контекста, но это также не поддерживается.Можно задаться вопросом, почему метод dettach недоступен, но, по крайней мере, вы можете подделать его, сопоставив список с новыми объектами:
var cities = Edited.Cities.Select(city => new City {
ID = city.ID,
Name = city.Name,
/* etc */
});
Ключ здесь заключается в том, чтобы не забыть сопоставить первичный ключ, а НЕ сопоставлятьлюбое из свойств отношения.Они должны быть установлены на ноль.После этого вы сможете прикрепить новый список городов и заставить его работать как положено.