我正在将相当多的WCF数据合同映射到实体框架类。
对于每一堂课,我都必须做这件事:
Mapper.CreateMap<MyContractClass, MyDalClass>()
.ForMember(x => x.EntityKey, opt => opt.Ignore())
.ForMember(x => x.SomeAssociation, opt => opt.Ignore())
.ForMember(x => x.SomeAssociationReference, opt=> opt.Ignore())
// Repeat
// the
// last
// /two
// lines
// for
// every
// single
// association
// (Some classes have a lot of associations)
;
有更简单的方法吗?有哪些方法可以排除EntityFramework提供的所有额外内容?
或者这只是必须手工完成?
注意:我已经广泛评估了POCO模板,但它不适用于我的场景。请不要只推荐使用而不是Automapper。
答案 0 :(得分:1)
假设您的合同类没有关联属性,您可以使用this extension method在一个语句中忽略它们:
Mapper.CreateMap<MyContractClass, MyDalClass>().IgnoreAllNonExisting();
答案 1 :(得分:0)
我正在使用T4模板从EDMX模型生成映射。这非常有效,到目前为止我节省了很多时间。这个想法来自this guy。您可以下载他的模板并对其进行自定义以适合您的方案。
答案 2 :(得分:0)
您可以使用比AutoMapper更简单的EntitiesToDTOs。您不必编写地图,也不必配置地图。它全部由工具自动生成。