[英]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.