如何使用Linq to SQL将对象序列化并保存为Xml格式的数据库 [英] How to serialize and save an object to database as Xml using Linq to SQL

查看:121
本文介绍了如何使用Linq to SQL将对象序列化并保存为Xml格式的数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用FileStream将对象序列化为Xml并保存到磁盘

I were using FileStream to Serialize an Object to Xml and Save to the disk

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文件.如何使用Linq to SQL将序列化的Object作为Xml保存到Sql Server 2008数据库的XML列中?以及如何从数据库中反序列化相同的内容?

This works fine and Xml file is generated on disk. How do I save serialized Object as Xml into a Sql Server 2008 database's XML column using Linq to SQL? And how to deserialize the same from database?

推荐答案

序列化为XElement

To serialize into an 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();
        }

这篇关于如何使用Linq to SQL将对象序列化并保存为Xml格式的数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆