0
idをAutoMapperでオブジェクトにマップしようとしていますが、私はこれを2日間把握しようとしています。どんな助けもありがとう。ここでnull可能なエンティティをマップする
は私のドメインオブジェクトである:ここで
public class Entity
{
public virtual Guid Id { get; protected set; }
}
public class Customer : Entity
{
public virtual User SalesPerson { get; set; }
}
public class User : Entity
{
public virtual string Email { get; set; }
}
は、私が使用している編集モデルです。営業担当者は、営業担当者がいない可能性があるため、「なし」オプション(value=""
)のユーザーのドロップダウンリストです。
public class CustomerEditModel
{
[DisplayName("Sales Person")]
public Guid? SalesPerson { get; set; }
}
ここで私は立ち往生しています。
cfg.CreateMap<CustomerEditModel, Customer>()
.ForMember(d => d.SalesPerson, o => o.ResolveUsing<EntityResolver<User>>().FromMember(s => s.SalesPerson));
cfg.CreateMap<CustomerEditModel, Customer>()
.ForMember(d => d.SalesPerson, o => o.MapFrom(s => s.SalesPerson.HasValue ? s.SalesPerson.Value : null);
cfg.CreateMap<CustomerEditModel, Customer>()
.ForMember(d => d.SalesPerson, o => o.MapFrom(s => s.SalesPerson != null ? s.SalesPerson : null));
public class EntityResolver<T> : ValueResolver<Guid, T>
where T : Entity
{
protected override T ResolveCore(Guid source)
{
return session.Get<T>(source, LockMode.None);
}
}
: Mapper.CreateMap .ConvertUsing >(); ここで、EntityConverterはITypeConverterであり、上記とほとんど同じです。 –