重用dbcontext

时间:2017-01-08 16:35:06

标签: c# asp.net asp.net-mvc entity-framework asp.net-web-api

我从控制器中分离了我的业务逻辑类,以便控制器包含尽可能少的业务逻辑。但是因为我想通过web请求的生命周期使用相同的dbcontext,并且能够将它们的上下文传递给实体,我将dbcontext传递给业务逻辑类,并且这些类中的几乎所有方法都接受dbcontext作为参数。 (当上下文不同时,我必须查询数据库以生成相同的实体。)

这种方法有什么问题吗? (两者都试图使用相同的上下文并将其作为每个业务逻辑方法中的参数接受?)

1 个答案:

答案 0 :(得分:0)

我认为您应该在项目中实现存储库和工作单元设计模式。

  

存储库和工作单元模块旨在在数据访问层和应用程序的业务逻辑层之间创建抽象层

您已经准备好完成业务逻辑层和数据访问层的分离。现在,您必须使用工作单元模式来共享dbcontext。

  

工作单元通过创建由所有存储库共享的单个数据库上下文类来协调多个存储库的工作

详细了解实施here