Я бы сначала ответил Э.Дж. Предполагая, что вы собираетесь использовать Entity Framework, одной из основных проблемных областей, с которыми вы столкнетесь, является управление отношениями. В вашем коде должен использоваться метод «Включить», чтобы обеспечить включение связанных объектов в результаты операции выбора. Ваше объединение не будет иметь этого эффекта.
http://msdn.microsoft.com/en-us/library/bb738708.aspx
Кроме того, отсоединение объекта не приведет к автоматическому отсоединению связанных объектов. Вы можете отсоединить их таким же образом, однако проблема в том, что при отсоединении каждого объекта связи, которые он удерживал с другими объектами в контексте, нарушаются.
Вручную можно восстановить отношения, однако стоит взглянуть на EntityGraph. Эта структура позволяет вам определять графы объектов и затем выполнять такие операции, как отсоединение от них. Весь граф отделяется за одну операцию с неизменными связями.
Мой опыт работы с этой средой связан с RIA Services и Silverlight, однако я считаю, что эти операции также поддерживаются в .Net.
http://riaservicescontrib.codeplex.com/wikipage?title=EntityGraphs
Edit1: я только что проверил документы EntityGraph и вижу, что DetachEntityGraph находится в специальном слое RIA, который, к сожалению, исключает его как вариант для вас.
Edit2: ответ Алекс Джейм на следующий вопрос является решением вашей проблемы. Не загружайте объекты в контекст для начала - используйте опцию notracking. Таким образом, вам не нужно отсоединять их, что является причиной проблемы.
Entity Framework - Отключение и сохранение графа связанных объектов