将存储库模式与 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
使用 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