【发布时间】:2014-11-19 22:34:01
【问题描述】:
我有一个架构问题。我正在尝试使用依赖注入来构建一个 ASP.MVC Web 应用程序来解耦数据访问层。问题是 - 模型。
基本上我有两个解决方案。第一个是 MVC Web 应用程序,第二个 DLL 是数据访问层。 DAL 有一些接口,它的实现和实体框架生成的模型,还有一些额外的模型——搜索条件和结果。 MVC 在使用 Ninject 注入 DAL 的基本控制器中有一个属性。
我关心的是 - 我应该如何处理模型?
我使用依赖注入的原因是将 DAL 与主 Web 应用程序解耦。因此,如果我正确理解 DAL 应该易于安装/拆卸的想法。但是,如果我在 MVC 控制器和视图中使用 DAL 的模型,它将完全依赖于 DAL 中最轻微的变化。
我在 MVC 中创建了复制实体框架生成的模型的模型,因此我可以在 MVC 中使用这些 MVC 模型,并且在调用 DAL 方法之前,我使用 AutoMapper 将它们映射到 DAL 模型,因此 DAL 模型仅用于控制器和耦合更松散。但它似乎仍然很脏,远非优雅的解决方案。
你怎么看?有没有更聪明的方法来处理它?
【问题讨论】:
标签: asp.net-mvc-4 architecture dependency-injection entity-framework-5 data-access-layer