gpt4 book ai didi

ASP.NET MVC + EF 4.1 分层、模型、 View 模型

转载 作者:行者123 更新时间:2023-12-02 17:47:39 27 4
gpt4 key购买 nike

我读了几篇与 ASP.NET 分层架构相关的文章和问题,但是读得太多后我有点困惑。 UI 层是在 ASP.NET MVC 中开发的,对于数据访问,我在项目中使用 EF。

我想通过一个例子来描述我的问题。假设我有一个简单的博客引擎,具有以下实体:帖子、评论、类别、用户。我使用 EF 数据库方法并在模型层中生成 POCO-s 到数据模型类库,生成的数据上下文和 EDMX 转到数据访问库。

在此之上我有一个业务层。例如,它负责返回带有评论的博客条目。在我的 UI 层中,我使用 ViewModel 类,因为为了显示条目,我需要一个 Post 实体和同一 View 上带有用户名的评论列表。

现在我的问题是:我的 View 不需要用户实体的所有详细信息,只需要名称即可显示帖子。问题是我应该在哪里进行 ViewModel 和 Model 类之间的映射?业务层应该这样做吗?或者我应该返回包含所有详细信息的实体并让 UI 处理映射?业务层是否应该包含 ViewModel 作为类库?

最好的方法是什么?

最佳答案

The question is where should I do the mapping between my ViewModels and Model classes?

最好是在单独的映射层中。如果您使用AutoMapper映射可以在 ASP.NET MVC 项目中的单独文件中声明。

Should the business layer do this?

绝对不是。业务层不了解任何 View 模型。

Should the business layer contain ViewModels as a class library?

没有。 UI 层(ASP.NET MVC 应用程序)是唯一了解 View 模型的层。如果您愿意,它们当然可以位于单独的类库中,但只有 UI 层才应该引用它。 View 模型与 View 紧密耦合。 View 是 UI 的一部分。

关于ASP.NET MVC + EF 4.1 分层、模型、 View 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7951941/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com