题
我想用我的AutoMapper域实体ICustomer映射CustomerDTO。一切为了第一继承级别,但不是为别人工作正常。
我使用我的域模型的接口,因为混凝土类型由StructureMap从我LinqToSql数据库基础层注入。
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映射
Mapper.CreateMap<CustomerDTO, ICustomer>();
Mapper.CreateMap<ICustomer, CustomerDTO>();
Mapper.AssertConfigurationIsValid();
现在,其中我使用的映射
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;
}
我有一个 Dictionnary丢失密钥异常在 “ID” 属性...
解决方案
有了!
在问题是由于IBaseEntity的“ID”属性的缺失设定器。
改变它的一切作品之后
public interface IBaseEntity<TPk>
{
TPk Id { get; set; }
}
不隶属于 StackOverflow