我在使用.NET Framework 4.5的C#项目中使用Entity Framework 6.0.0版。我有一个类Filing
,其SQL Server列XmlContent
为xml
数据类型。我有数据库优先实体框架我主要用于保存行到Filing
表(我当前不读那些行,如果这样做的话差异)
我已阅读这些有关“字符串”支持属性的帖子,以使用Entity Framework保存到XML列,如here和here所述
我的XML声明如下所示
<?xml version="1.0" encoding="UTF-8"?>
....
我的实体框架自动生成(数据库优先)如下所示:
public partial class Filing
{
// ...
public string XmlContent { get; set; }
// ...
}
使用我的自定义分部类(保存到字符串属性...):
public partial class Filing
{
[NotMapped]
public XmlDocument XmlDocument
{
get
{
var xmlDocument = new XmlDocument();
xmlDocument.LoadXml(this.XmlContent);
return xmlDocument;
}
set
{
this.XmlContent = value.OuterXml;
}
}
// ...
}
当我这样做时:
eFileEntities.Filings.Add(filingWithUtf8XmlString);
eFileEntities.SaveChanges();
我得到一个异常,其InnerException(最终)读作:
"XML Parsing : line 1 , character 38, unable to switch the encoding."
我已经阅读了有关我遇到的错误的帖子,“无法切换编码”
SqlXml
数据类型,因此无需担心编码。 但我不知道该怎么做in the context of Entity Framework encoding="utf-16"
,因为这些答案显示,EntityFramework可以saveChanges()
没有错误,但我想避免(如果可能):
有什么想法吗?