![]() |
1
3
我使用存储库模式。上下文在存储库中,并且和存储库一样长。存储库在Controller.Initialize中初始化,并在Controller.Dispose中释放。这意味着在请求完成之前,一个请求会得到一个存储库/上下文,这很好地工作——请求很短,因此上下文被快速处理。但是,当一个操作调用多个存储库方法时,它们都使用相同的上下文,这使得许多事情变得更容易。 |
![]() |
2
0
存储库模式是前进的道路取决于您的项目大小,但如果它不是一个小问题,我建议使用存储库模式,因为它也更容易维护。
尽可能晚地打开上下文并尽快关闭
|
![]() |
3
0
我用接口创建了自己的通用存储库类:
它负责基本的CRUD操作,它也有上下文。在存储库中,我有保存业务登录的服务类。例子:
每个服务都有必要的存储库。控制器有Ninject注入的服务。控制器方法很短,它们只将数据从服务传递到视图(以两种方式)。这使得整个项目易于测试。您可以模拟存储库来测试服务。您可以模拟服务来测试控制器。 |