我有这样一个层的架构:
客户端UI (exe),
使用app处理来自客户端的请求的服务(.net核心应用程序),
应用程序执行操作,检查... (.net核心类库),
Models是一个映射类。(.net核心类库),
用于数据库处理的基础设施。(带有泛型存储库的.net核心类库)。
在更大的服务层,在启动时创建我的数据库的一个实例,然后这个实例被传递到下面的层到应用程序,然后从应用程序传递到基础架构层。这样做是出于IoC的原因,也是为了保留我的数据库客户端的单个连接实例。
现在我将数据库更改为MongoDb,我发现自己在保存数据库客户端实例的服务层和基础结构中使用的数据库技术之间建立了一些直接依赖关系,然后我需要修改我的基础结构和服务,这就是问题所在。
所以这一切都是关于架构的,我应该把我的数据库客户端实例放在哪里,在顶层,还是应该只由基础设施来处理?如果是这样,这意味着我每次都需要创建新的连接。
希望我说得够清楚了
发布于 2021-01-15 06:30:59
您绝对不应该在层之间传递数据库对象的实例。它应该停留在一个层上--数据层。这就是我的意思:
data layer,它包含了通过抽象(接口)为上层建模的类。例如,类User、Profile以及setUserName、updateProfile等方法。https://stackoverflow.com/questions/65715268
复制相似问题