C# 如何将XmlDocument添加到POCO类?

C# 如何将XmlDocument添加到POCO类?,c#,poco,entity-framework-6,C#,Poco,Entity Framework 6,我有这门课: [Table("Items", Schema = "Datamodel")] public class BaseItem : Identifier { [Required(ErrorMessage = "Name is required.")] [MaxLength(240)] public string Name { get; set; } public XmlDocument Conten

我有这门课:

    [Table("Items", Schema = "Datamodel")]
    public class BaseItem : Identifier
    {
        [Required(ErrorMessage = "Name is required.")]
        [MaxLength(240)]
        public string Name { get; set; }

        public XmlDocument Content { get; set; }

        public BaseItem() { Content = new XmlDocument(); }
        internal BaseItem(string name) : this() { Name = name; }
    }
}
(Identifier类只定义了一个GUID类型的额外属性Id,这是必需的,默认情况下用一个新值初始化。我的所有POCO类都从这个类继承。)

问题是XmlDocument属性,我希望它存储在数据库中,最好是XML类型,这样XML的内容就可以成为我查询的一部分。那么,这可能吗?

如果没有,在保持此类的公共接口完整的情况下,什么是最好的选择?

可以将XmlDoc序列化为Blob,但为什么要麻烦呢?它本质上是文本

public string ContentText { get; set; }

private _xmlDocuent;    
[NotMapped] 
public XmlDocument Content 
{
  get { return _xmlDocumet ?? (_xmlDocument = new XmlDocuent.Parse(ContentTExt)); }
}

解析方法用于XDocument,而不是XmlDocument。但我明白你的意思。它为我的代码添加了一个可见属性:ContentText。我不想让那房子公开。但EF POCO的东西看不到受保护的财产。这是事物的本质。你可以用DAO层来摆脱它,但这是一个很大的麻烦。这种额外的属性只是一种缺陷,而不是一种阻碍。