我没有找到我的问题的答案,所以如果已经有这样的问题,请指出正确的方向。
假设项目结构如下:
- DBProject(带有 DBContext + Entities + Repositories + Repository 接口)
- ServiceProject(与 DBProject 一起使用的服务、一些 Email 提供程序项目、一些天气提供程序项目等)
- MainProject(使用 API 控制器,验证等)
一些用户数据的 GET 请求的简单流程:
- 在控制器的操作中:_userService.GetSomeData(request.SomeData); (_userService 是注入的接口,其实现在带有接口的 ServiceProject 中)
- 在 GetSomeData 的 Service 项目中,我执行了一些逻辑,我正在调用 _userRepository.GetUser(someValueHere) -> 同样的情况,这是从 DBProject 注入的接口;
我的问题:
- DBProject 正在返回例如 UserEntity(这是实际的表 class - EF Core 从中生成表); 这个 object 正在传递给 ServiceProject; 所以 ServiceProject 正在“看到”在 DBProject 中定义/创建的 UserEntity。 如何解决这个问题? 或者也许这完全没问题?
- ServiceProject 也是如此,它将 ServiceProject 中定义的一些 object 返回到 MainProject - 因此 MainProject “看到” object 并从 ServiceProject 键入。
我有依赖倒置,接口被注入控制器/服务等。实现是在某些项目中完成的(存储库在 DBProject 中实现,服务在 ServiceProject 中实现)但这些项目仍然与 object 类型“连接”这些接口正在返回。 所以用户实体(表对象)被返回到服务层——这就是我认为的问题,对吗?
如何解决此类问题?
我很抱歉问这个问题,也许这是一个愚蠢的问题,但我无法正确地将它全部放在我的脑海中 - DI,接口等。