为什么数据存储库不是静态的?

Dar*_*rcy 12 c# asp.net-mvc repository-pattern

我正在查看MVC应用程序的repository方法,ASP.NET并注意到static没有使用类.

由于回购是CRUD,为什么不成功呢static

Rob*_*evy 27

1)使用静态类进行单元测试很困难(如果您正在测试依赖于您的存储库的类,那么您希望该测试针对假的'模拟'存储库对象而不是真实存储库对象)

2)您经常希望每个请求有一个存储库实例,以便更容易确保来自一个用户的未经更改的更改不会让另一个用户搞砸了.

  • @Anar - 区别是 1-instance 与 1-instance-per-request (2认同)