質問
CustomDentをAutoMapperを使用してドメインエンティティICustomerにマッピングしようとしています。最初の継承レベルではすべて正常に機能しますが、他のレベルでは正常に機能しません。
具象型は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マッピングの今
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;
}
&quot; Id&quot;に辞書にないキーの例外がありますプロパティ...
解決
了解!
この問題は、&quot; Id&quot;のセッターの欠落が原因でした。 IBaseEntityのプロパティ。
変更後はすべて機能します
public interface IBaseEntity<TPk>
{
TPk Id { get; set; }
}
所属していません StackOverflow