【问题标题】:Saving xml string in xml or nvarchar the database将 xml 字符串保存在 xml 或 nvarchar 数据库中
【发布时间】:2012-12-11 09:55:08
【问题描述】:

我需要在 SQL Server 2012 中保存一个长 XML 字符串。

目前我在EDMX 和数据库中保存了一个字符串变量和一个字符串列。
问题是我的 XML 字符串可能很长(> 5000 个字符)

处理此变量的最佳做法是什么(在 C# 和 SQL Server 中)?

使用 XML 列有什么好处?

【问题讨论】:

  • 您指的是使用FOR XML 以XML 格式呈现结果的SELECT 语句吗?
  • 如果它看起来像 XML,嘎嘎叫像 XML,闻起来像 XML - 它很可能是 XML,那么 将它存储为 XML乙>。另外:XML 可以使用模式进行验证,可以使用 XPath 进行查询,并且它以比纯文本更有效的格式存储 - 您只能从使用 XML 中受益
  • 我喜欢早上 XML 的味道。

标签: c# sql-server xml sql-server-2012


【解决方案1】:

我不确定使用 XML 列的确切好处,但我个人认为使用它是有意义的。或者,您可以使用其他数据类型来存储 5000 多个字符长的 XML 文件。

您可能还想查看 text/ntext 之类的内容。

看看这里的 T-SQL 数据类型:http://msdn.microsoft.com/en-us/library/ms187752.aspx

就 C# 的最佳使用而言,本质上,任何 XML 都只是一个字符串,但例如,您可以将 XML 从数据库直接加载到 XmlReader 或 XmlDocument 中,而不是先将其放入字符串中,然后根据需要继续解析它(只是思考的食物!)

注意:根据个人经验,我已经构建了自己的实体框架(与 NHibernate 或 Microsoft 的实体框架无关)。这允许 XML 作为任何数据库结构中的数据类型,例如,在 T-SQL 中,它将存储映射为 XML 到 XML 数据类型的对象,但是在未实现 XML 类型的 RDBMS 系统中,实体框架优雅地降级到下一个最接近的合适替代方案。

【讨论】:

    猜你喜欢
    • 2013-03-05
    • 2013-06-22
    • 1970-01-01
    • 2012-08-13
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多