c# - 我什么时候应该使用 AutoMapper,什么时候不应该

标签 c# asp.net-mvc asp.net-mvc-5 viewmodel automapper

我有一个数据层,其中包含我的 EF6 DbFirst edmx、存储库和自动映射。

对于我的数据层中的每个自动生成的实体,我还有一个带有 Poco 的模型层。除了一些名称更改外,这些属性几乎完全匹配。

AutoMapper 仅安装到我的数据层,这是我在配置文件中设置所有映射的地方。此时,我有一个从每个 DataLayer 实体到每个 ModelLayer 实体以及每个 ModelLayer 实体到每个 DataLayer 实体的映射。映射中指定了任何名称更改。

因为它在我的存储库保存方法中是这样设置的,所以该函数从 ModelLayer 接收一个对象,然后映射到一个 DataLayer 对象,这样我就可以将它发送到 DbContext。在我的存储库中提取信息时,我使用 DbContext 进行检索,然后使用 AutoMapper 函数映射到模型,以便该函数可以作为 Model.entity 返回。

我的业务层和网络应用只使用模型实体。如果这有任何问题,请告诉我。

另一件事是在我的 Controller 中进行 GET 和 POST 操作期间从 ModelLayer 映射到 ViewModel,反之亦然。在这里双向映射也是正常的吗?此时是否需要将 AutoMapper 安装到我的 Web 应用程序?

最佳答案

当我想摆脱无聊的左侧右侧代码时,我会使用 AutoMapper。如果复制数据的逻辑不是很明显,我会恢复到手动映射。

现在这意味着我在所有 GET 上使用 AutoMapper 的 LINQ 预测,并在 POST 上谨慎使用。

关于c# - 我什么时候应该使用 AutoMapper,什么时候不应该,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28574187/

相关文章:

c# - 我在哪里可以找到有关 Windows 处于待机模式的信息

javascript - 通过选择下拉菜单和按钮单击来隐藏/显示 div

c# - 将工作应用程序发布到 Azure 时出现问题

asp.net-mvc - 如何在 asp.net 5 应用程序中添加新的 aspx 页面

asp.net-mvc - ASP.NET MVC 4 - ModelBinder 错误

c# - 通过 C# 代码更新 web.config

c# - 将特定路由与 Url.Action 结合使用

c# - Asp.net WebForms DropDownList - 具有不同值和显示文本的控件 (DataValueField/DataTextField)

c# - 没有 *.exe 文件的 .NET Core 控制台项目如何在 Windows 操作系统上运行?

c# - 如何将 ASP Net Membership Provider UserId 保存到另一个 sql 表中?