将存储库模式与 Entity Framework 一起使用 6

Using Repository Pattern With Entity Framework 6

使用 entity framework 6(及更高版本)实现存储库模式是最佳实践吗?为什么?微软好像不推荐!

我认为在实体框架上添加存储库模式是个好主意,因为它可以在许多领域为您提供很多帮助。但它也可以增加一层新的复杂性。所以要考虑的要点是:

  • 使用存储库,您可以限制客户端进行特定操作。 (根据要求和实施情况可以是赞成或反对)
  • 您还可以为复杂的操作提供现成的功能,这样客户就不必重复该逻辑。
  • 存储库可以是线程安全的,因为 DbContext 不是。
  • 存储库将允许您独立于 entity framework 因此,如果您将来需要离开它,您可以轻松地更改底层功能。
  • 您可以拦截存储库中传入的数据库操作,并随心所欲地处理它们。例如在多公司场景中添加附加 where 条款。
  • 测试变得更加容易,因为模拟底层功能变得很容易。

但是存储库也有其他缺点。 看看这些 Is the Repository pattern useful with Entity Framework?Benefit of Unit of Work and Repository Pattern with Entity Framework