 悬赏园豆:80
                [已关闭问题] 
            
                    关闭于 2012-06-20 19:37
                悬赏园豆: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,不再抛异常了 -_-||
其实可以将xml类型的字段进行数据转换,转换后就不会出现这种问题了,因为转换后的代码.net识别不了了:)
我在上面说了,在SQL Server端,调用CONVERT,可以进行转换……这样一来就得用存储过程了
@Jerin: Sql语句就可以了,不用存储过程,如Select Convert ......