首页 新闻 会员 周边

关于Entity Framework更新xml字段的问题

0
悬赏园豆:80 [已关闭问题] 关闭于 2012-06-20 19:37

请教一个关于Entity Framework的问题。我直接用的生成的ObjectContext的继承类。
数据库中,有个字段是xml类型的(映射到实体上,是一个string,不是LinqToSQL的XElement),普通的XML文本的insert/update(ObjectContext.AddToXXXX(newOne))是通过测试的。 
但是如果遇到包含
<!DOCTYPE rdf:RDF [
 <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#">

信息的文本,在调用SaveChanges()时会抛出异常: 
InnerException
{"不允许使用内部子集 DTD 分析 XML。请将 CONVERT 与样式选项 2 一起使用,以启用有限的内部子集 DTD 支持。"}
System.Exception {System.Data.SqlClient.SqlException}

之前有查到convert(xml, xxxxxxx, 1)是在xml中保留格式空白。现在异常中提示改用参数2。

不知道这种问题怎么解决?通过存储过程解决?那样总觉得和其它的insert/update实现的风格不同,总不能所有的insert/update操作都改为通过存储过程实现吧?

PS1:DTD:Document Type Definition 

PS2: 我现在改用Linq to sql,不再抛异常了 -_-||

Jerin的主页 Jerin | 初学一级 | 园豆:124
提问于:2012-02-04 14:31
< >
分享
所有回答(1)
0

其实可以将xml类型的字段进行数据转换,转换后就不会出现这种问题了,因为转换后的代码.net识别不了了:)

az235 | 园豆:8483 (大侠五级) | 2012-02-05 22:51

我在上面说了,在SQL Server端,调用CONVERT,可以进行转换……这样一来就得用存储过程了

支持(0) 反对(0) Jerin | 园豆:124 (初学一级) | 2012-02-06 11:35

@Jerin: Sql语句就可以了,不用存储过程,如Select Convert ......

支持(0) 反对(0) az235 | 园豆:8483 (大侠五级) | 2012-02-06 13:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册