1) Напишите утилиту, которая читает сериализованные объекты в старом определении объекта.
2) Утилита записывает ваши объекты в БД несериализованным способом (т. Е. С одним фрагментом данных в каждом поле и т. Д.).
Не приучайте к сериализации объектов и хранению их в постоянном хранилище для извлечения (намного) позже. Сериализация не была построена для этого.
В старые времена вы сталкивались с проблемой программистов на C: они создавали структуру в памяти, сохраняли эту структуру в файл. Тогда члены структуры изменятся, и они зададутся вопросом, как их прочитать, так как данные были закодированы по-разному.
затем появились форматы баз данных, INI-файлы и т. Д., Специально предназначенные для удовлетворения этой потребности, что позволило сохранить данные в одном формате и затем прочитать их без ошибок.
Так что не повторяйте ошибок прошлого. Сериализация была создана для облегчения кратковременного двоичного хранения и, скажем, возможности передавать объект по TCP / IP.
В худшем случае храните ваши данные в формате XML, а не в виде сериализованного двоичного потока. Кроме того, нет никаких сведений о том, что от MS известно, что сериализованные данные из одной версии .NET можно будет читать из другой. Преобразуйте ваши данные в удобочитаемый формат, пока вы можете.