【发布时间】:2019-09-04 04:21:11
【问题描述】:
我开始证明 EF-Core 2 并且我阅读了有关工作单元和存储库模式的信息。我尝试做一个数据库项目 Code First 并且我有 3 个实体(用户、产品和提供者),我如何应用存储库模式和我项目中的工作单元,因为我不知道如何将它们组合在同一个项目中,有人可以帮助我吗?
【问题讨论】:
-
如果您使用 EF,UoW 和存储库模式是多余的。 DbContext 已经像 UoW 并且 DbSet 是存储库。您基本上是在抽象之上添加抽象。
-
@William Xifaras 如果你想从 ef 中抽象出你的业务,那么有一天你可以改变你的 ORM 甚至不使用数据库并使用其他东西,我的意思是为你的业务抽象出 ef 核心逻辑不是坏事。
-
@MustafaSaeed 你这样做了多少次?我经常听到这种论点,但我不记得曾经参与过一个我们改变数据访问框架的项目,而我已经从事这个工作多年了。存储库和 UoW 模式妨碍了实体框架 IMO。我不主张将服务/业务逻辑与您的数据访问代码相结合。替代方案是 CQS、CQRS,创建封装 EF 操作并从服务层调用它们的类。
标签: entity-framework entity-framework-core ef-core-2.0 ef-core-2.2 entity-framework-core-2.2