如果我在 ASP.NET MVC 应用程序中使用存储库模式,我需要 DI 让程序知道,接口(interface)类必须被映射。如果我实现 Unity,我需要将 DAL 项目添加到我的 MVC 项目,然后在 global.asax 中注册类型。
在我看来,我认为将DAL层的命名空间添加到MVC项目中是不好的,中间还有一个业务层。我认为,在业务层中注入(inject) DAL 类并在 MVC 应用程序中仅注入(inject)业务层映射会很漂亮。
到这里怎么走?你有什么建议吗?
更新: 让我清楚。在服务层,只有 DTO 和业务和数据访问层的 DI。在服务层,我将 DTO 映射到领域模型。不明白的是,那怎么调用业务层的方法呢?
最佳答案
如果你想务实一点,真正的 3 层架构需要一个服务层。服务和 MVC 之间是数据传输对象 (DTO)。服务层隐藏了 DAL 和业务层。
如果你这样设置,MVC 本身对 DAL 一无所知,只知道 DTO 和服务(契约(Contract))。
关于c# - ASP.NET MVC 项目 EF 存储库模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15770547/