在存儲庫示例中,我看到存儲庫在會話打開時實例化,這看起來好像是整個會話一樣。在控制器操作中,通過調用存儲庫訪問數據層。這是常見的做法嗎?根據每個操作請求在需求基礎上實例化存儲庫是否更有意義?在全球範圍內舉辦資料庫是否常見?
編輯:一個更確切的場景。
public class myController : Controller {
IMyRepository myRepository;
public myController(IMyRepository repositoryParam){
myRepository = repositoryParam;
}
public ActionResult someAction(){
MyClass myClass = myRepository.RepositoryAction();
}
}
在這種情況下,myRepository對myController是全局的(注意:這是基於Steven Sanderson的一個例子)。我已經看到它也定義了所有的控制器可以訪問,但這是一個簡單的,確切的例子。在這個例子中,爲什麼版本庫會在全局使用,而不是基於每次使用?
存儲庫是一個相當寬泛的概念。您必須以更具體的方式定義您的確切場景,以便從您的問題中瞭解一些情況。 – 2012-01-26 23:32:50
@DarinDimitrov用更精確的場景進行編輯。 – 2012-01-26 23:43:21
@DarinDimitrov - 我假設他指的是許多ASP.NET MVC示例(使用存儲庫模式訪問數據層)中顯示的存儲庫。通常在這些示例中,具體的存儲庫對象正在通過EF訪問數據庫。 – JasCav 2012-01-26 23:48:48