【发布时间】:2016-12-08 21:47:11
【问题描述】:
我一直在尝试将我的域对象映射到报表视图模型。在我伪造实体框架代码并使用构建器返回完全填充的 pocco 对象的测试中,一切都运行良好。现在我实际上正在访问数据库并返回数据,我看到了一些奇怪的动态代理类型错误。
这是我的代码示例:
public class ContactMapping : Profile
{
protected override void Configure()
{
Mapper.CreateMap<Contact, ReportRowModel>()
.ForMember(dest => dest.Gender, opt => opt.MapFrom(src => src.Gender.Name));
}
}
而映射代码是这样的:
var contact = GetContactFor(clientPolicy);
Mapper.DynamicMap(contact, rowModel);
return rowModel;
除了返回 System.Data.Entity.DynamicProxies.Gender_3419AAE86B58120AA2983DA212CFFEC4E42296DA14DE0836B3E25D7C6252EF18 的 rowModel.Gender 字段外,所有联系人字段都正确填充
我已经看到人们在使用 Map 而不是 DynamicMap 时遇到问题的解决方案,但我没有发现任何 .ForMember 映射失败的地方。
任何建议。
【问题讨论】:
-
DynamicMap使用个人资料吗? -
我是 Automapper 的新手,所以我不确定。我想它会像预期的那样填充联系人的其余属性
-
我可能弄错了,但我认为 DynamicMap 无论如何都可以工作。你试过普通的
Map()吗? -
是的,我收到“缺少类型映射配置或不支持的映射”异常
-
你绝对是在正确的轨道上。一旦我调用了 AutoMapperConfigurator.Configure() 方法,一切都很好。
标签: c# entity-framework automapper