在我的应用程序中,我正在尝试使用this ASP.NET guide应用存储库模式,但不使用通用存储库和工作单元。
关心我的是处置。目前,我的应用程序使用标准DbContext
控制器方法处理Dispose()
:
LibraryContext db = new LibraryContext();
//
...
//
protected override void Dispose(bool disposing)
{
if (disposing)
{
db.Dispose();
}
base.Dispose(disposing);
}
但是如何处置多个存储库?例如,我有三个:bookRepository
,userRepository
和collectionRepository
。我应该将它们全部放在方法中,例如:
protected override void Dispose(bool disposing)
{
if (disposing)
{
bookRepository.Dispose();
userRepository.Dispose();
collectionRepository.Dispose();
}
base.Dispose(disposing);
}
这是正确的做法吗? 谢谢你的回答。
答案 0 :(得分:0)
您可以创建由其他人扩展的基本存储库。在基本存储库的ctor中,您可以初始化DbContext类,当您想要处置时,可以调用base.Dispose。它应该是这样的:
Option
如果你真的不想为一个Dispose()方法创建基础知识库,你应该逐个处理它们。