8

對於Web應用程序的每個主要部分(考慮到它的數據庫中至少有50個表是一個大的部分),有多個XXX : DbContext類是不是很好?例如:MembershipContext,BlogContext,StoreContext等。或者更方便地爲所有與db訪問相關的東西提供一個DatabaseContext單個Web應用程序的多個DbContext類。是好是壞?

回答

8

使用多個DbContext類意味着複雜的交叉事務(您可以在網絡上找到解決此問題的示例http://pastebin.com/YEDqyH0n),但可能是有道理的。這一切都取決於你想要設計的體系結構和分離。

不管怎麼說,您應該查看Repository和UnitOfWork模式,以獲得如何使用您的DbContexts的抽象層。看看這裏:Multiple DbContexts in N-Tier Application和這裏EF and repository pattern - ending up with multiple DbContexts in one controller - any issues (performance, data integrity)?如果你使用ASP.NET MVC。

對於50個表,我認爲可能有多個DbContexts是合理的。所以我會建議使用多個DbContext。但是你應該使用Repository和UnitOfWork模式來包裝它們,使之與其他圖層中的實際實現無關(例如,稍後你可以輕鬆改變主意,例如只使用signle DbContext)。

我希望有幫助。

+7

DbContext已經實現了Repository和工作單元模式! –

相關問題