Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用Linq to SQL将对象序列化并保存为Xml到数据库_C#_Linq To Sql_Xml Serialization - Fatal编程技术网

C# 如何使用Linq to SQL将对象序列化并保存为Xml到数据库

C# 如何使用Linq to SQL将对象序列化并保存为Xml到数据库,c#,linq-to-sql,xml-serialization,C#,Linq To Sql,Xml Serialization,我使用FileStream将对象序列化为Xml并保存到磁盘 Stream str = new FileStream(@"serializedstate.xml", FileMode.OpenOrCreate) XmlSerializer x = new XmlSerializer(typeof(GridState)); x.Serialize(str, new GridState { GridName= txtGridName.Text,

我使用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列中?以及如何从数据库反序列化相同的内容?

在sql中,必须具有列类型XML,在linq中,列类型必须是XElement,这样才能操作抛出linq。

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