C# 实体框架5和XElement字段
开始使用Visual Studio 2012 RC和实体框架5。。。绝对喜欢它,但想知道是否有更干净的方法来做到这一点 我想省去每次解析XML的中间环节,并通过.ToString()进行设置C# 实体框架5和XElement字段,c#,xml,entity-framework,xelement,entity-framework-5,C#,Xml,Entity Framework,Xelement,Entity Framework 5,开始使用Visual Studio 2012 RC和实体框架5。。。绝对喜欢它,但想知道是否有更干净的方法来做到这一点 我想省去每次解析XML的中间环节,并通过.ToString()进行设置 原则上没有更好的办法。您需要两个属性—一个用于XElement,另一个用于支持持久化字符串。如果您想减少解析和转换的数量,您需要为此实现一些基础设施。一般做法是: 处理ObjectContext.ObjectMaterialized事件-如果物化对象是MyFentity解析字符串并将其保存到XElemen
原则上没有更好的办法。您需要两个属性—一个用于
XElement
,另一个用于支持持久化字符串。如果您想减少解析和转换的数量,您需要为此实现一些基础设施。一般做法是:
- 处理
事件-如果物化对象是ObjectContext.ObjectMaterialized
解析字符串并将其保存到MyFentity
属性。如果您使用的是XElement
,您仍然可以通过显式实现的DbContext
获取IObjectContextAdapter
ObjectContext
- 重写
-在方法中,通过SaveChanges
查找所有修改或插入的DbContext.ChangeTracker.GetEntries
实例,并将其XML保存到string属性MyEFEntity
DbContext
更干净地执行此操作的方法。要是微软能开源就好了
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; }
}