让Api项目(例如:.Net核心Api MVC)需要直接引用数据库项目,以便将DbContext作为服务注入,这似乎与干净架构的目标相矛盾:
services.AddDbContext<IDatabaseService, DatabaseService>();层应该是独立的,并且不知道特定的实现,在本例中是DatabaseService类。我在几个教程中看到了这种方法。
我想知道如何改进这一点?也许是一个致力于依赖注入的中心(核心)项目层?
发布于 2021-09-10 19:08:07
IOC通常是我们实现抽象和干净架构的方式,在IOC容器中完全允许各种耦合。
然而,您通常是正确的,因为直接依赖于DbContext而不是像Repository Pattern这样的东西会使事物与数据库紧密耦合,从而破坏了清洁代码。这是许多开发人员做出的妥协,只是因为他们觉得不太可能分解应用程序并将其与相关数据库解耦。
当然,他们可能是非常错误的,如果他们认为他们的上下文太大,并且他们需要将一部分分解到它自己的服务中,他们将需要进行一些重构。
https://stackoverflow.com/questions/69135595
复制相似问题