首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否将C#类直接序列化到SQL server?

是否将C#类直接序列化到SQL server?
EN

Stack Overflow用户
提问于 2009-07-31 13:31:46
回答 5查看 44K关注 0票数 23

有人能建议将数据(实际上是一个类)序列化到DB的最佳方法吗?

我使用的是SQL server2008,但是在存储到数据库之前,我假设我需要将类序列化为字符串/或其他数据类型?

我假定此字段需要为文本或二进制??

SQL server2008(或.net 3.5)是否支持直接序列化到数据库??

真的很感谢你的帮助

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 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();
}

然后,只需像其他字符串一样将字符串放入数据库。

票数 37
EN

Stack Overflow用户

发布于 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();
}
票数 3
EN

Stack Overflow用户

发布于 2009-07-31 13:39:04

我已经将对象序列化为XML,并将它们放入数据库中。因为我们知道文本的最大数量,所以我们使用varchar( max )数据类型,而不是文本或二进制格式。

这是一个OLTP web应用程序,我们发现,使用具有xml数据类型的列会占用大量cpu资源,因为每次插入时都会验证xml。在我们的例子中,从未查询过xml中的任何内容,所以没有xml查询功能对我们来说很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1212555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档