MVC存储库模式 - 处理多个存储库?

时间:2016-06-02 06:39:50

标签: c# asp.net-mvc entity-framework repository repository-pattern

在我的应用程序中,我正在尝试使用this ASP.NET guide应用存储库模式,但不使用通用存储库和工作单元。

关心我的是处置。目前,我的应用程序使用标准DbContext控制器方法处理Dispose()

LibraryContext db = new LibraryContext();
//
...
//
protected override void Dispose(bool disposing)
{
    if (disposing)
    {
        db.Dispose();
    }
    base.Dispose(disposing);
}

但是如何处置多个存储库?例如,我有三个:bookRepositoryuserRepositorycollectionRepository。我应该将它们全部放在方法中,例如:

protected override void Dispose(bool disposing)
{
    if (disposing)
    {
        bookRepository.Dispose();
        userRepository.Dispose();
        collectionRepository.Dispose();
    }
    base.Dispose(disposing);
}

这是正确的做法吗? 谢谢你的回答。

1 个答案:

答案 0 :(得分:0)

您可以创建由其他人扩展的基本存储库。在基本存储库的ctor中,您可以初始化DbContext类,当您想要处置时,可以调用base.Dispose。它应该是这样的:

Option

如果你真的不想为一个Dispose()方法创建基础知识库,你应该逐个处理它们。