4

我在我的項目中使用實體框架,並且我遇到了這樣的問題,一旦我將我的實體傳遞給View(請記住,這些實體已經進行了延遲初始化對象:Products.Owner,其中owner是一個懶惰初始化的對象)我得到一個運行時異常,告訴我ObjectContext超出了範圍。ASP.NET MVC中的實體框架和對象上下文生存期

現在這是有道理的,因爲我使用using(.... entities ...){....}語句從Service獲取實體,這意味着它在結果返回時處理。

我該如何解決這個問題,並有一個從開始到結束的對象上下文。謝謝。

回答

2

一種選擇是將存儲庫與Request相關聯,並使Repository實現IDisposable,並使Dispose方法處理包含的ObjectContext,而不是在控制器操作中使用更熟悉的使用模式。

+0

你能提供一個你正在建議的代碼示例嗎? – CodeMonkey 2009-11-09 09:18:55

+0

補充:控制器已經實現了IDisposable。因此,您可以在Controller.Initialize中新建您的存儲庫並將其置於Controller.Dispose中。這會在執行視圖時使上下文保持活動狀態。 – 2009-11-09 13:25:53

相關問題