繁体   English   中英

实体框架5和XElement字段

[英]Entity Framework 5 and XElement fields

开始使用Visual Studio 2012 RC和Entity Framework 5 ...绝对喜欢它,但想知道是否有更清洁的方法来做到这一点。

我想减少每次分析XML并通过.ToString()进行设置的中间人

public class MyEFEntity
{
    [NotMapped()]
    public XElement Tags { 
        get { return XElement.Parse(tags); } 
        set { tags = value.ToString(); } }

    [Column("Tags", TypeName = "xml"), Required]
    public string tags { get; set; }
}

原则上没有更好的方法。 您需要两个属性-一个用于XElement ,另一个用于支持持久字符串。 如果要减少解析和转换的数量,则需要为此实现一些基础结构。 一般方法是:

  • 处理ObjectContext.ObjectMaterialized事件-如果实例化对象是MyEFEntity解析字符串,然后将其保存到XElement属性。 如果使用的是DbContext ,仍然可以通过其显式实现的IObjectContextAdapter获得ObjectContext
  • 覆盖SaveChanges在方法中,通过DbContext.ChangeTracker.GetEntries查找所有已修改或插入的MyEFEntity实例,并将其XML保存到字符串属性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM