2011-07-05 26 views
1

我使用EF 4並具有以下代碼。我應該使用實體作爲參數嗎?

public static Dictionary<Tuple<int, string>, Country> CountryDict { get; set; } 
    public static Dictionary<int, State> StateDict { get; set; } 

我跑的內存配置文件,發現填充這些詞典後,我的ObjectContext的犯規得到處置,因爲國家與國家的對象仍然在內存中。

我使用這個不正確嗎?我應該爲國家和州創建單獨的模型類並使用它們嗎?

回答

2

當你填充這些集合,你可以Detach這些對象從它們的上下文,所以ObjectContext的不設法再跟蹤他們。

而且,它通常是最好的using語句創建ObjectContext的,以確保它得到處理及時。

+0

objectcontext在裏面使用語句。 – Asdfg

+0

我試過myObjectContext.Detach(myObjectContext.Coutries);但我仍然可以在記憶中看到它。這不是分離實體的正確方法嗎? – Asdfg

+0

不,每個要保留引用的對象都必須單獨分離。 '的foreach(在CountryDict.Values VAR國家){myObjectContext.Detach(國家);}' – StriplingWarrior

相關問題