【发布时间】:2011-10-31 09:37:59
【问题描述】:
我阅读了一些与 ASP.NET 中的分层架构相关的文章和问题,但是在阅读过多之后我有点困惑。 UI 层是在 ASP.NET MVC 中开发的,我在项目中使用 EF 进行数据访问。
我想通过一个例子来描述我的问题。假设我有一个简单的博客引擎,具有以下实体:帖子、评论、类别、用户。我使用 EF 数据库方法并在我的模型层生成 POCO-s 到数据模型类库,生成的数据上下文和 EDMX 进入数据访问库。
在此之上,我有一个业务层。这负责例如返回带有 cmets 的博客条目。在我的 UI 层中,我使用 ViewModel 类,因为要显示一个条目,我需要一个 Post 实体和一个带有用户名的评论列表。
现在我的问题是:我的视图不需要用户实体的所有详细信息,只需要名称即可显示帖子。问题是我应该在哪里进行 ViewModels 和 Model 类之间的映射?业务层应该这样做吗?或者我应该返回包含所有细节的实体并让 UI 处理映射?业务层是否应该包含 ViewModel 作为类库?
最好的方法是什么?
【问题讨论】:
-
好问题。这是一个两难的选择。人们似乎喜欢这种方法。 stackoverflow.com/questions/664205/viewmodel-best-practices/…
标签: asp.net asp.net-mvc-3 entity-framework architecture entity-framework-4.1