Consider this entity:
public class CondRule
{
public virtual decimal Id { get; set; }
public virtual string Name { get; set; }
public virtual CondRuleType RuleType { get; set; }
public virtual string Statement { get; set; }
}
and CondRuleType
is:
public class CondRuleType
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
}
It is obvious that there is a one to one relation between CondRule
and CondRuleType
entities.
Also I have CondRuleDto
:
public class CondRuleDto
{
public decimal Id { get; set; }
public string Name { get; set; }
public CondRuleType RuleType { get; set; }
}
I have mapped CondRule
to CondRuleDto
using AutoMapper
:
Mapper.CreateMap<CondRule, CondRuleDto>();
When I call Session.Get
to get CondRule
by id and the map the result to CondRuleDto
, AutoMapper does not resolve proxies (here RuleType
).
Here is my code:
var condRule = Session.Get<CondRule>(id);
var condRuleDto = Mapper.Map<CondRuleDto>(condRule);
When I watch condRuleDto, RuleType
property is a NHibernate proxy. I want AutoMapper
to map RuleType
proxy to a POCO. How to make this work?
PS: I have to mention that when I use query and use automapper's Project
, it will result a list with no proxies (I know that Project
make this happen. May be I need something like Project
to use after Session.Get
):
Session.Query<CondRule>().Project().To<CondRuleDto>().ToList()