c# - ASP.NET MVC 项目 EF 存储库模式

标签 c# asp.net-mvc dependency-injection

如果我在 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/

相关文章:

c# - 线程与并行性能

asp.net-mvc - Blazor HttpClient 3.2.0 Get 调用抛出异常,因为响应 header 内容类型与 GetFromJsonAsync 不兼容

c# - 如何为使用包装器的 Azure Functions 编写单元测试?

c# - Json.Net PopulateObject 附加列表而不是设置值

c# - 在不使用任何内置函数的情况下在 .NET 中生成随机数

javascript - jQuery Ajax Success 或 Fail 方法命中

.net - 在 ASP.NET MVC 中获取原始请求

c# - 如何在 Startup.cs 中使用通用类型注册接口(interface)

c# - Ninject 功能 (WhenInjectedInto) 等同于 Windsor

c# - Silverlight 4 WebRequest、SSL 和凭证