[英]Mapping DTO to Entity
我正在尝试将DTO映射到实体。 当我在网上搜索时,我注意到很多对AutoMapper的引用,以及关于它不是一个好方法的反馈。
此外,我找不到任何新的日期来源,一个抱怨没有“新”来源的问题是4岁。
我找到的其中一个看起来非常有前途的来源是https://rogerjohansson.blog/2013/12/01/why-mapping-dtos-to-entities-using-automapper-and-entityframework-is-horrible/
我也无法让它发挥作用。
所以,基本情况就是这样。
我正在尝试使用wcf对订单进行集成。 (另一个案例)
我有一个订单dto和相关的dto是订单,客户,客户地址或者deradress。 稍后会有更多内容。
由于这些主要是数据库表,因此主“表”是Order。 它充当标题,订单和其他自我解释。 我相信每个人之前都会遇到这样的事情。
我根据他们的对手实体创建了Dto。
我被告知要做的是;
a)转换(或术语,映射?)这些DTO到实体
b)将实体添加到dbcontext和savechanges。
那么,有人能指出我在解决这种情况方面的良好方向吗?
我们有一个类似的项目。 我们使用MVC中的Model类而不是WCF,但最终是同一个想法:从一个对象转换为另一个对象。 我不能不同意AutoMapper的更多信息。 起初,我们对它的效率有同样的怀疑,但最后我们决定尝试一下。 然后,我们遇到了文章指出的一些问题(特别是元素集合)。 幸运的是,AutoMapper为您提供了足够的灵活性来处理这些特殊的映射条件。
我认为AutoMapper很容易学习基础知识,因此您可以在几分钟内映射您的对象。 此外,它还为您提供了所有特殊考虑因素的工具。
您发布的文章解释了“实体框架不喜欢AutoMapper”,但它更多地与您如何遵循EF和AutoMapper的规则相关。 实体框架是一个巨大的ORM,因此,您需要遵循一些规则(在某些情况下非常严格的规则)。 当然,使用带有基本示例的AutoMapper会破坏一些规则,但是一旦开始习惯它,就很容易遵循规则。
总结一下:AutoMapper为您节省了大量时间,您可以投资定制一些配置。 如果没有,你将不得不使用linq投影,这在大多数情况下将花费你更多的时间。 例如:通过检测基于Ids的添加/编辑/删除来解决收集问题,也可以通过自定义映射器使用AutoMapper进行处理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.