gpt4 book ai didi

asp.net-mvc - ASP.NET MVC : Best practice or design pattern for getting the DTO/EditModel into the Database

转载 作者:行者123 更新时间:2023-12-02 05:19:33 27 4
gpt4 key购买 nike

我正在使用 AutoMapper 为 ViewModel 和 EditModel 创建 DTO。我找不到一个很好的例子来说明如何使用 EditModel 并将它包含的更改应用到数据库。

我首先考虑使用 AutoMapper 作为双向机制,但显然不推荐:http://www.lostechies.com/blogs/jimmy_bogard/archive/2009/09/17/the-case-for-two-way-mapping-in-automapper.aspx

那么,从 Controller 获取 DTO 或 EditModel 到数据存储的最佳方式(设计模式)是什么?

更新:根据一些答案,我应该提到我确实使用了存储库设计模式和 Entity Framework 。

更新:我的问题太主观了,因为没有通用的做法可以做到这一点。我的结论是,即使其他人不推荐,很多人也会两种方式使用 AutoMapper。

最佳答案

在最简单的形式中,您只需要使用 AutoMapper 将您的模型映射到您的域/DTO 对象,然后将其持久保存到您的数据存储中,无论您如何操作。

所以这几乎是我完成的项目之一:

Mapper.Map(modelObject, domainObject);
domainObject.Save();
return domainObject.Id;

您可能希望从调用此方法的任何方法中返回 id,以便您可以进一步使用它。这只是一个粗略的例子,但这是它的基础......

编辑:行:Mapper.Map 将 ViewModel 数据放入 Domain 对象中。从那里,Save() 调用您需要的任何内容。在您的情况下,这将是您的 IRepository.Save() 方法。对我来说,这会调用 nHibernate 的 SaveOrUpdate

在我的 AutoMapper 配置中,我有一些类似的东西:

Mapper.CreateMap<OrderDomain, OrderViewDTO>();

Mapper.CreateMap<OrderSaveDTO, OrderDomain>();

这有帮助吗?

关于asp.net-mvc - ASP.NET MVC : Best practice or design pattern for getting the DTO/EditModel into the Database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4160547/

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