有人能建议将数据(实际上是一个类)序列化到DB的最佳方法吗?
我使用的是SQL server2008,但是在存储到数据库之前,我假设我需要将类序列化为字符串/或其他数据类型?
我假定此字段需要为文本或二进制??
SQL server2008(或.net 3.5)是否支持直接序列化到数据库??
真的很感谢你的帮助
发布于 2009-07-31 13:33:31
您可以将类以xml格式序列化为xml字段。我们一直将其用于ETL中的异常日志记录。
使用XmlSerializer,你可能需要一个帮助器方法,将类序列化为一个字符串……
public static string SerializeToXml<T>(T value)
{
StringWriter writer = new StringWriter(CultureInfo.InvariantCulture);
XmlSerializer serializer = new XmlSerializer(typeof(T));
serializer.Serialize(writer, value);
return writer.ToString();
}
然后,只需像其他字符串一样将字符串放入数据库。
发布于 2010-11-15 20:29:16
没有泛型(更好的解决方案)
public static string SerializeToXml(object value)
{
StringWriter writer = new StringWriter(CultureInfo.InvariantCulture);
XmlSerializer serializer = new XmlSerializer(value.GetType());
serializer.Serialize(writer, value);
return writer.ToString();
}
发布于 2009-07-31 13:39:04
我已经将对象序列化为XML,并将它们放入数据库中。因为我们知道文本的最大数量,所以我们使用varchar( max )数据类型,而不是文本或二进制格式。
这是一个OLTP web应用程序,我们发现,使用具有xml数据类型的列会占用大量cpu资源,因为每次插入时都会验证xml。在我们的例子中,从未查询过xml中的任何内容,所以没有xml查询功能对我们来说很好。
https://stackoverflow.com/questions/1212555
复制相似问题