Как сериализовать и сохранить объект в базе данных в формате XML с использованием Linq to SQL - PullRequest
6 голосов
/ 01 декабря 2009

Я использовал 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? А как десериализовать то же самое из базы данных?

Ответы [ 2 ]

7 голосов
/ 01 декабря 2009

Для сериализации в 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();
        }
0 голосов
/ 01 декабря 2009

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

...