3
AutoMapper를 사용하여 CustomerDTO를 내 도메인 엔터티 ICustomer와 매핑하려고합니다. 첫 번째 상속 수준에서는 모든 것이 잘 작동하지만 다른 수준에서는 그렇지 않습니다.일반 유형 상속을 사용하는 AutoMapper
구체적인 유형이 LinqToSql 데이터베이스 인프라 스트럭처 레이어의 StructureMap에 의해 주입되므로 내 도메인 모델에 인터페이스를 사용하고 있습니다. 이제
public interface IBaseEntity<TPk>
{
TPk Id { get; }
}
public interface ICustomer : IBaseEntity<int>
{
string Email { get; set; }
}
[DataContract]
public class CustomerDTO
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string Email { get; set; }
}
AutoMapper 매핑 내가 내가 "ID"속성에 키 예외 누락
사전도있어 public CreateCustomerServiceResult CreateCustomer(CustomerDTO customer)
{
var result = new CreateCustomerServiceResult();
try
{
var originalMapped = Mapper.DynamicMap<CustomerDTO, ICustomer>(customer);
var newCustomer = _customerService.CreateCustomer(originalMapped);
var newMapped = Mapper.DynamicMap<ICustomer, CustomerDTO>(newCustomer);
result.Customer = newMapped;
}
catch (Exception ex)
{
}
return result;
}
매핑을 사용하고 지금
Mapper.CreateMap<CustomerDTO, ICustomer>();
Mapper.CreateMap<ICustomer, CustomerDTO>();
Mapper.AssertConfigurationIsValid();
...
한가지를 작동합니다. 대신 Mapper.Map을 사용하십시오. –