Nhibernate - xml 列格式不正确
Nhibernate - xml column not well formed
我有一些 XML 片段,我通过 NHibernate (3.2.0.4000) 存储在 SQL 服务器数据库中。 table 列定义为 XML。 XML 的存储和更新工作正常,但在数据库中我缺少带有编码和版本信息的第一个节点。
C# 对象,内部 XML:
<?xml version="1.0" encoding="utf-16"?>
<RsSn>
<Layermapping xmlns="someNamespace">
<Layer layerName="0" layerDescription="5876548" />
<Layer layerName="1" layerDescription="5876549" />
</Layermapping>
</RsSn>
SQL插入数据时的Server Profiler:
declare @p6 xml
set @p6=convert(xml,
N'<RsSn><Layermapping xmlns="someNamespace">
<Layer layerName="0" layerDescription="5876548"/>
<Layer layerName="1" layerDescription="5876549"/>
</Layermapping>
</RsSn>'
)
缺少<?xml version="1.0" encoding="utf-16"?>
元素!
SQL 服务器列的内容(通过 SSMS studio):
<RsSn>
<Layermapping xmlns="someNamespace">
<Layer layerName="0" layerDescription="5876548" />
<Layer layerName="1" layerDescription="5876549" />
</Layermapping>
</RsSn>
NHibernate 配置(映射文件的一部分)
<class name="SnippetEntity" table="tblSnippet">
<id name="SnippetPK" column="SnippetPK" type="Int64">
<generator class="native" />
</id>
<property name="ResourceData" column="ResourceData" type="NHibernate.Type.XmlDocType"/>
</class>
不允许我更新 NHibernate 程序集。
这是我在映射文件中使用的正确类型吗?
我是否必须使用其他一些配置才能将文档存储 "well formed" 在数据库中?
顶部的 <?xml version="1.0" encoding="utf-16"?>
构造称为 XML prolog。它不是强制性的。 XML 没有它也是合式的。
SQL 服务器将 XML 存储为 Unicode (utf-16)。没有其他编码。这就是为什么 SQL 服务器在 XML.
中存在序言时将其剥离的原因
我有一些 XML 片段,我通过 NHibernate (3.2.0.4000) 存储在 SQL 服务器数据库中。 table 列定义为 XML。 XML 的存储和更新工作正常,但在数据库中我缺少带有编码和版本信息的第一个节点。
C# 对象,内部 XML:
<?xml version="1.0" encoding="utf-16"?>
<RsSn>
<Layermapping xmlns="someNamespace">
<Layer layerName="0" layerDescription="5876548" />
<Layer layerName="1" layerDescription="5876549" />
</Layermapping>
</RsSn>
SQL插入数据时的Server Profiler:
declare @p6 xml
set @p6=convert(xml,
N'<RsSn><Layermapping xmlns="someNamespace">
<Layer layerName="0" layerDescription="5876548"/>
<Layer layerName="1" layerDescription="5876549"/>
</Layermapping>
</RsSn>'
)
缺少<?xml version="1.0" encoding="utf-16"?>
元素!
SQL 服务器列的内容(通过 SSMS studio):
<RsSn>
<Layermapping xmlns="someNamespace">
<Layer layerName="0" layerDescription="5876548" />
<Layer layerName="1" layerDescription="5876549" />
</Layermapping>
</RsSn>
NHibernate 配置(映射文件的一部分)
<class name="SnippetEntity" table="tblSnippet">
<id name="SnippetPK" column="SnippetPK" type="Int64">
<generator class="native" />
</id>
<property name="ResourceData" column="ResourceData" type="NHibernate.Type.XmlDocType"/>
</class>
不允许我更新 NHibernate 程序集。
这是我在映射文件中使用的正确类型吗?
我是否必须使用其他一些配置才能将文档存储 "well formed" 在数据库中?
顶部的
<?xml version="1.0" encoding="utf-16"?>
构造称为 XML prolog。它不是强制性的。 XML 没有它也是合式的。SQL 服务器将 XML 存储为 Unicode (utf-16)。没有其他编码。这就是为什么 SQL 服务器在 XML.
中存在序言时将其剥离的原因