在我的销售过程中,我使用 automapper 将 Cart 实体映射到 CartModel。购物车实体包含货币实体女巫应映射到 CurrencyCode 字符串。我有一个问题,应该是 nHibernate 在存储库方法上显式获取的 Currency 实体,还是可以,当我将其留在映射规则中时?什么是最好的解决方案?
老实说,我认为 automapper 不应该将查询发送到数据库,对吗?
映射:
Mapper.CreateMap<Cart, CartModel>()
.ForMember(dest => dest.Amount, src => src.MapFrom(s => s.ArticleList.Count))
.ForMember(dest => dest.CurrencyCode, src => src.MapFrom(s => s.Currency.Code))
.ForMember(dest => dest.CartLines, src => src.MapFrom(s => s.ArticleList));
购物车服务:
public virtual CartModel GetCartInfo(long cartId)
{
var dto = new CartModel();
var cart = _cartRepository.GetForCartSummary(cartId);
Mapper.Map(cart, dto);
return dto;
}
购物车存储库:
public Cart GetForCartSummary(long cartId)
{
return Session.Query<Cart>()
.Where(c => c.Id == cartId)
// .Fetch(c => c.Currency)
.FetchMany(c => c.ArticleList)
.Single();
}