Причина сбоя заключается в том, что в 3.5 с пакетом обновления 1 (SP1) то, что для отношений старое значение FK является частью проверки параллелизма, как вы обнаружили с помощью профилировщика SQL.
Что вам нужно, это что-то вроде этого:
Concept conceptToUpdate = new Concept() {
Id = 1 ,
ConceptType = new ConceptType {Id = OriginalFKValue}
};
ConceptType conceptType = new ConceptType() { Id = 5 };
db.AttachTo("Concept", conceptToUpdate);
db.AttachTo("ConceptType", conceptType);
conceptToUpdate.ConceptType = conceptType;
db.SaveChanges();
Это означает, что вам нужно знать не только Id того, что вы хотите обновить, но также и его оригинальные значения FK, что, конечно, является реальной болью.
Отсюда новая функция в EF 4.0, называемая FK Associations. При использовании ассоциаций FK исходное значение FK составляет , а не часть проверки параллелизма.
Надеюсь, это поможет
Alex