Все зависит от вашего приложения. Это распределенное многофункциональное приложение, в котором старые приложения могут встретить новые объекты данных из центральной базы данных или другого источника? (Как и в старых версиях офисных приложений, необходимо иметь несколько способов работы с новыми форматами документов.)
Если это так, то я бы сказал, настраиваемая сериализация и десериализация с явной нумерацией версий схемы. Я бы поставил явные метаданные на каждый элемент и атрибут, указав, должен ли читатель понимать элемент / атрибут (и значения по умолчанию, если нет). Это, конечно, может занять довольно много места и увеличить сложность кода ...
Но ответ действительно зависит от того, почему вы сериализуетесь в базу данных. Вы не заинтересованы в использовании базы данных для ее реляционных возможностей? В противном случае может быть интересным решение для отображения O / R.