Dan*_*rik 4 nhibernate lazy-loading automapper
AutoMapper非常棒,节省了大量时间,但当我开始查看应用程序的性能时,AutoMapper负责性能损失.
我正在使用NHibernate的延迟加载.大多数情况下,需要父实体而根本不需要访问子实体.实际上,发生的事情是AutoMapper尝试映射尽可能多的关系,导致NHibernate延迟加载所有子实体(我看到SELECT N + 1一直在发生).
有没有办法限制AutoMapper的深度,或者AutoMapper可以懒惰地映射子实体?
您可以将ignore方法用于不需要加载的关联.
Mapper.CreateMap<User, UserDto>()
.ForMember(dest => dest.LazyCollection, opt => opt.Ignore())
.ForMember(dest => dest.AnotherLazyCollection, opt => opt.Ignore())
Mapper.CreateMap<UserProperty, UserPropertyDto>()
.ForMember(dest => dest.PropertyLazyReference, opt => opt.Ignore());
return Mapper.Map<User, UserDto>(user);
Run Code Online (Sandbox Code Playgroud)
对于您知道在dto中需要的关联,您应该查看使用初始查询更有效地获取这些关联的方法,但这是一个全新的问题.
| 归档时间: |
|
| 查看次数: |
2710 次 |
| 最近记录: |