Похоже, вы получили ручку при сериализации в XML, поэтому примите мой совет: сохраняйте XML в строковом поле (varchar, nvarchar, text, ntext), а не в специализированном поле.
Если вы сделаете это небольшое переключение, вы будете готовы к работе ... дальнейших изменений не требуется.
Поле XML подвергается проверкам и может быть связано с несколькими головными болями, и если ваше приложение является только производителем и потребителем этого поля, вы также можете воспользоваться этим ярлыком.
SQL2008 (даже 2005) достаточно силен, чтобы компенсировать ресурсы, которые вы можете сэкономить, компилируя поле xml.
ОДНАКО,
Я бы немного оптимизировал ваш код, похоже, вы написали гораздо больше кода, чем нужно.
Например, вам больше не нужно создавать личное поле для хранения данных из вашей собственности, например:
public PersonalXml Personal
{
get { return _personal; }
set { _personal = value; }
}
будет работать просто отлично, если вы напишите это как:
public PersonalXml Personal { get ; set ; }
есть больше жира, который вы могли бы сократить ...