我读了一些有关ASP.NET中分层架构的文章和问题,但是阅读太多之后我有点困惑。UI层使用ASP.NET MVC开发,数据访问层我在项目中使用EF。
我想通过一个例子来描述我的问题。假设我有一个简单的博客引擎,包括以下实体:Post、Comment、Category、User。我使用EF数据库方法并将POCO-s生成到我的模型层,然后放到数据访问库的生成datacontext和EDMX中。
在这之上,我有一个业务层。这个业务层负责返回带评论的博客条目等操作。在我的UI层中,我使用ViewModel类,因为为了显示某个条目,我需要在同一个视图上同时显示一个Post实体和一个评论列表以及用户名。
现在我遇到了问题:我的视图不需要User实体的所有细节,只需要名字就可以显示一个post。问题是应该在哪里进行ViewModel和Model类之间的映射?业务层应该干这个吗?还是我应该返回每一个细节的实体,让UI处理映射?业务层是否应该包含ViewModel作为类库?
什么是最好的解决方案呢?
我想通过一个例子来描述我的问题。假设我有一个简单的博客引擎,包括以下实体:Post、Comment、Category、User。我使用EF数据库方法并将POCO-s生成到我的模型层,然后放到数据访问库的生成datacontext和EDMX中。
在这之上,我有一个业务层。这个业务层负责返回带评论的博客条目等操作。在我的UI层中,我使用ViewModel类,因为为了显示某个条目,我需要在同一个视图上同时显示一个Post实体和一个评论列表以及用户名。
现在我遇到了问题:我的视图不需要User实体的所有细节,只需要名字就可以显示一个post。问题是应该在哪里进行ViewModel和Model类之间的映射?业务层应该干这个吗?还是我应该返回每一个细节的实体,让UI处理映射?业务层是否应该包含ViewModel作为类库?
什么是最好的解决方案呢?