问题描述
我读了几篇文章,并在ASP.NET有关分层架构的问题,但是我太阅读后变得有点混乱。用户界面层在ASP.NET MVC和我在项目中使用EF数据访问开发的。
我想通过一个例子来说明我的问题。比方说,我有一个简单的博客引擎,具有以下实体:帖子,评论,分类,用户。我用EF数据库的方法,并生成POCO-S在我的模型层到数据模型类库,生成的datacontext和EDMX转到数据访问库。
在此之上我有一个业务层。这是负责例如返回与评论的博客条目。在我的UI层我使用视图模型类,因为显示的条目,我需要既邮政实体和评论与同一观点的用户名列表。
而现在我的问题:我的观点并不需要以显示某条信息的用户的实体,只是名字的每一个细节。现在的问题是我应该做我的ViewModels和模型类之间的映射?如果业务层做到这一点?或者我应该用每一个细节返回实体,让UI处理映射?如果业务层包含的ViewModels作为一个类库?
什么是最好的办法了吗?
Ideally in a separate mapping layer. If you use AutoMapper mappings could be declared in separate files in the ASP.NET MVC project.
Absolutely not. The business layer has no knowledge of any view models.
No. The UI layer (ASP.NET MVC application) is the only layer that has knowledge of view models. They could of course be in a separate class library if you wish, but it is only the UI layer that should reference it. View models are tightly coupled to views. And views are part of the UI.
这篇关于ASP.NET MVC + EF 4.1分层,模型,的ViewModels的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!