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