【问题标题】:How to serialize and save an object to database as Xml using Linq to SQL如何使用 Linq to SQL 将对象序列化并作为 Xml 保存到数据库
【发布时间】:2009-12-01 09:48:49
【问题描述】:

我正在使用 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 文件会在磁盘上生成。如何使用 Linq to SQL 将序列化的对象作为 Xml 保存到 Sql Server 2008 数据库的 XML 列中?以及如何从数据库中反序列化?

【问题讨论】:

    标签: c# linq-to-sql xml-serialization


    【解决方案1】:

    序列化为 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();
            }
    

    【讨论】:

      【解决方案2】:

      在 sql 中,您必须具有列类型 XML,而在 linq 中,Colum 的类型必须是 XElement,而不是您可以操作 throw Linq。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-08
        • 1970-01-01
        • 2017-07-03
        • 1970-01-01
        • 2017-12-10
        • 2019-12-03
        • 2017-10-22
        • 1970-01-01
        相关资源
        最近更新 更多