Для этого вам придется написать собственную логику и избегать использования метода MarkForDeletion для этих объектов.
Ваша логика должна будет взять предоставленную сущность, каким-то образом изменить ее, чтобы указать, что она теперь "заархивирована", и затем сохранить изменения в контексте.
Затем вам нужно будет убедиться, что любой код, извлекаемый из БД, учитывает эти значения, обозначающие архивную запись.
Чтобы упростить его, вы можете создать частичные классы, соответствующие вашим классам сущностей, так что они имеют честь, скажем, пользовательский интерфейс. Таким образом, вы можете кодировать интерфейс и не использовать отражение для установки значений сущности.
Если вы можете использовать .NET 4.0, EF поддерживает POCO, и вы можете пометить сущности с помощью соответствующих интерфейсов, что сократит количество файлов, с которыми вам нужно работать.