0

我很困惑什麼時候創建對象實例或Static Helper類。例如,如果我調用一個方法來更新數據模型並提交到數據庫,我創建了一個DataContext的實例。 Datacontext的生命週期是什麼?每次需要進行新的數據更新時都可以創建新的實例嗎?MVC對象實例或靜態類?

在我的控制器中,我創建了一個DataCOntext的實例,並在回發給控制器時重用該實例。

回答

2

DataContext是一個非常輕量級的類,旨在用於工作單元。通常,我傳入一個Factory,根據需要創建適當的DataContext。我通常會將其封裝在一個使用塊中,並將結果轉換爲List(或其他對象),以便在控制器代碼中執行查詢,並將結果對象傳遞給我的視圖。通過這種方式,DataContext可以在控制器方法中被丟棄(來自使用塊)。

在控制器中注入工廠的原因有兩方面 - 它允許按需創建DataContext,並允許我使用生成模擬DataContext的工廠進行測試。後者允許我避免在單元測試中使用實際的數據庫。

+0

謝謝。在控制器類中創建一個Datacontxt並讓所有ActionResults共享它有什麼問題嗎? – zsharp 2009-01-09 04:42:58