我以前从未使用过 MVC 设计模式,最近我开始使用 ASP.NET MVC 处理项目。
我使用 ActiveRecord 作为我的数据层。
我还使用视图模型(每个视图唯一)和 AutoMapper 将我的视图模型映射到 EntityFramework 实体。
在研究 MVC、EntityFramework 和阅读不同文章的几天后,我提出了以下设计:
在我的解决方案中,我有包含视图和控制器的 Web 项目(表示层)。
我有核心项目,我在其中定义了我的 ViewModels 和服务(所有业务逻辑所在的业务层)
我有 EntityModels 项目,我所有的 EF 实体都在其中(数据层)
这种设计允许我将我的数据层与我的表示层分开,Web 项目对 EntityModels 项目一无所知,反之亦然,所有逻辑都存在于业务层中。
从我的控制器(在验证检查之后)我将 viewModels 传递到服务层,在该层执行映射和所有必要的业务逻辑。
这种设计完全正确吗?
我的担心是我已经读过 ViewModels 应该在表示层中定义。我看到了表示层引用数据层并且映射是在控制器中完成的示例(好的做法?)。在这种情况下,控制器将域模型传递给业务层。我在这里没有任何经验,但我不喜欢它。
那么,谁能指出我哪里对,哪里错?
提前致谢。