2008-12-04 51 views
3

是否有與LINQ to SQL的OnCreated partial相當的EF?Entity Framework中的Hook對象加載事件?

我的一些對象有XML字段,我想分析每當從db加載對象 - 我想把XML數據放入更友好的強類型集合。我已經將XML字段標記爲private,並在將項目提交回數據庫之前掛鉤了SavingChanges事件以重新構建XML,但我無法弄清楚如何在加載對象時填充集合。

我想過爲我的XML字段使用OnFieldChanged partial,但是當SavingChanges期間重新構建XML字段時,它會再次運行,所以看起來應該有更好的方法。

回答

2

據我所知,沒有OnLoaded事件或類似事件。一種解決方法可能是暴露的集合作爲屬性和懶洋洋地創建/解析上首次訪問值:

private List<SomeData> _parsedDataCache; 
public IList<SomeData> ParsedData { 
    get { 
     if (_parsedDataCache == null) 
      ParseData(); 
     return _parsedDataCache; 
    } 
} 
+0

ObjectContext.ObjectMaterialized事件我已經這樣做了幾場。我傾向於把一個通用的[數據] NVARCHAR(MAX)字段對我這樣的擴展所有表。 。然後我有一個void SetData(action runner)方法。這允許上下文從字符串(緩存)轉換爲基本XElement,然後在...之後更新...我還通過SavingChanges連接到調用私有無效BeforeSave()方法,如果它存在於實體的部分...作品整體相當不錯。 – Tracker1 2011-10-14 17:21:43

-2

您應該創建一個部分類(如你在LINQ做SQL),並只使用默認的構造函數。

+0

這不起作用。 XML字段值在構建時尚未設置。 – 2011-08-04 12:13:06

3

或使用.NET 4.0

相關問題