Как сериализовать и сохранить объект в базе данных как Xml с использованием Linq to SQL

Я использовал FileStream для сериализации объекта в Xml и сохранения на диск

Stream str = new FileStream(@"serializedstate.xml", FileMode.OpenOrCreate) XmlSerializer x = new XmlSerializer(typeof(GridState)); x.Serialize(str, new GridState { GridName= txtGridName.Text, GridColumns = GetGridColumnStates() }); 

Это отлично работает, и файл Xml создается на диске. Как сохранить сериализованный объект как Xml в XML-столбец базы данных Sql Server 2008 с использованием Linq to SQL? И как десериализировать то же самое из базы данных?

Сериализация в XElement

  XmlSerializer x = new XmlSerializer(typeof(GridState)); XDocument doc = new XDocument(); using (XmlWriter xw = doc.CreateWriter()) { x.Serialize(xw, new GridState { GridName= txtGridName.Text, GridColumns = GetGridColumnStates() }); xw.Close(); } XElement el = doc.Root; 

Для десериализации

  using (XmlReader xr = el.CreateReader()) { GridState myDeserializedObject = x.Deserialize(xr) as GridState; xr.Close(); } 

В sql у вас должен быть тип colum типа XML, а в linq тип Colum должен быть XElement, чем вы можете манипулировать throw Linq.