在使用规范模式组合对象时使用 Automapper
Using Automapper while using specification pattern to compose objects
规范模式可用于组合对象,如下例所示:
IUser user =
UserSpecification
.ForPerson()
.WithName("myname")
.WithSurname("mysurname")
.WithPrimaryContact(ContactSpecification.ForEmailAddress("abc@email.com"))
.AndNoMoreContacts()
.Build();
这导致手动将数据从 DTO 映射到规范对象。
有没有办法,我们可以在使用规范模式的同时使用automapper来填充对象? Automapper 是否以任何方式支持此功能?
谢谢
我不这么认为,规范模式通常用于个别属性的零碎设置。该模式的实现涉及每个方法实际手动设置一个 属性。
AutoMapper 总是从对象映射,在上面,我没有看到源对象,只是一个规范。如果规范填充了一个对象,那么该对象被映射到目的地,那么它就可以工作。 "Build()" 的上述结果可以映射到 "IUser".
否则,意义不大。规范模式中的代码正在设置一个对象,并尝试将其映射到 AutoMapper 配置,我认为 trouble/confusing 远远超过它的价值。
规范模式可用于组合对象,如下例所示:
IUser user =
UserSpecification
.ForPerson()
.WithName("myname")
.WithSurname("mysurname")
.WithPrimaryContact(ContactSpecification.ForEmailAddress("abc@email.com"))
.AndNoMoreContacts()
.Build();
这导致手动将数据从 DTO 映射到规范对象。 有没有办法,我们可以在使用规范模式的同时使用automapper来填充对象? Automapper 是否以任何方式支持此功能?
谢谢
我不这么认为,规范模式通常用于个别属性的零碎设置。该模式的实现涉及每个方法实际手动设置一个 属性。
AutoMapper 总是从对象映射,在上面,我没有看到源对象,只是一个规范。如果规范填充了一个对象,那么该对象被映射到目的地,那么它就可以工作。 "Build()" 的上述结果可以映射到 "IUser".
否则,意义不大。规范模式中的代码正在设置一个对象,并尝试将其映射到 AutoMapper 配置,我认为 trouble/confusing 远远超过它的价值。