我正在尝试在 Code First 中创建一个 XML 列。我很清楚 Entity Framework 并不完全支持 XML 列,而是将它们作为字符串读取。没关系。不过,我仍然希望列类型为 XML。这是我的类(class):
class Content
{
public int ContentId { get; set; }
[Column(TypeName="xml")]
public string XmlString { get; set; }
[NotMapped]
public XElement Xml { get { ... } set { ... } }
}
问题是,Code First 迁移完全忽略了 Column 属性并将该字段创建为 nvarchar(max)
。我尝试使用 [DataType("xml")]
,但这也没有用。
这是迁移错误吗?
最佳答案
你试过吗:
public String XmlContent { get; set; }
public XElement XmlValueWrapper
{
get { return XElement.Parse(XmlContent); }
set { XmlContent = value.ToString(); }
}
public partial class XmlEntityMap : EntityTypeConfiguration<XmlEntity>
{
public XmlEntityMap()
{
// ...
this.Property(c => c.XmlContent).HasColumnType("xml");
this.Ignore(c => c.XmlValueWrapper);
}
}
关于c# - Code-First 应用程序中的 XML 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12631290/