I'm using AutoMapper to map my entity to DTO.

Mapper.CreateMap<ArticleInfo, ArticleInfoDTO>();
Mapper.CreateMap<Article, ArticleDTO>()
                    .ForMember(x => x.Author, y =>
y.ResolveUsing<NHibernateResolver>().FromMember(z => z.Author))
                    //.ForMember(x => x.Info, y =>
y.ResolveUsing<NHibernateResolver>().FromMember(z => z.Info))
                    .ForMember(x => x.Info, y => y.Ignore());
//...

I'm doing it when the session is disconnected. To avoid problems with
lazyload, I have own value resolver:

public class NHibernateResolver : ValueResolver<object, object>
    {
        protected override object ResolveCore(object source)
        {
                if (NHibernateUtil.IsInitialized(source))
                {
                    return source;
                }

                return null;
        }
    }

Everything works, expect situation when in my Article entity I have a
component (which has LazyLoad definied to).
If I uncomment this line for Info field (this is ArticleInfo object)),
then I have an exception:

AutoMapper.AutoMapperMappingException: Trying to map
System.Collections.Generic.IList`1[[CMS.Domain.Entities.Article,
CMS.Infrastructure, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null]] to
System.Collections.Generic.List`1[[CMS.Services.DTOs.ArticleDTO,
CMS.Services, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].

Zgłoszono wyjątek typu 'AutoMapper.AutoMapperMappingException'. --->
AutoMapper.AutoMapperMappingException: Trying to map
CMS.Domain.Entities.Article to CMS.Services.DTOs.ArticleDTO.

Using mapping configuration for CMS.Domain.Entities.Article to
CMS.Services.DTOs.ArticleDTO
Zgłoszono wyjątek typu 'AutoMapper.AutoMapperMappingException'. --->
AutoMapper.AutoMapperMappingException: Trying to map
Castle.Proxies.ArticleProxy to CMS.Services.DTOs.ArticleInfoDTO.

Using mapping configuration for CMS.Domain.Entities.Article to
CMS.Services.DTOs.ArticleDTO
Destination property: Info

Zgłoszono wyjątek typu 'AutoMapper.AutoMapperMappingException'. --->
NHibernate.LazyInitializationException:
Initializing[CMS.Domain.Entities.Article#]-session is not connected.
entity-name:'CMS.Domain.Entities.Article' property:'Info'

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to