gpt4 book ai didi

c# - Entity Framework 5 和 XElement 字段

转载 作者:数据小太阳 更新时间:2023-10-29 01:56:40 26 4
gpt4 key购买 nike

开始使用 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 保存到字符串属性(property)

关于c# - Entity Framework 5 和 XElement 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10904266/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com