A DotNet Raider

My adventures in the .NET world!
posts - 49, comments - 12, trackbacks - 0

My Links

News

Website View Martino Bordin's profile on LinkedIn

Archives

Post Categories

Automapper : creare Dto da proxy Nhibernate

automapperSe utilizzate AutoMapper per creare Dto da oggetti letti con Nhibernate e lazy-loading attivo, è possibile che otteniate un’eccezione di tipo ObjectDisposedException, in quanto Automapper accede a proprietà “Lazy”, ma la sessione è già stata chiusa e distrutta.

Per risolverlo, basta implementare un Custom Resolver, che tornerà null qualora il tipo della proprietà che sto provando a mappare sia un proxy non inizializzato.

Ecco quindi il codice:

  1. public class NhProxyResolver : ValueResolver<object, object>
  2. {
  3.     protected override object ResolveCore(object source)
  4.     {
  5.         return NHibernateUtil.IsInitialized(source) ? source : null;
  6.     }
  7. }

 

ed un esempio della configurazione di AutoMapper:

  1. Mapper.CreateMap<User, UserDto>()
  2.     .ForMember(x => x.Orders, opt => opt.ResolveUsing<NhProxyResolver>().FromMember(z => z.Orders));

Print | posted on mercoledì 29 febbraio 2012 02:00 | Filed Under [ WPF SILVERLIGHT O/RM ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET