C# 如何使用Linq to SQL将对象序列化并保存为Xml到数据库
我使用FileStream将对象序列化为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,
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();
}