Frage

Ich versuche CustomerDTO mit meiner Domain Einheit ICustomer mit AutoMapper abzubilden. Alles funktioniert für erste Vererbungsstufe in Ordnung, aber nicht für die anderen.

Ich bin Schnittstellen für meine Domain-Modell, da konkrete Typen von StructureMap von meiner LinqToSql Database Infrastructure Schicht injiziert werden.

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; }
}

Nun ist die AutoMapper Mapping

Mapper.CreateMap<CustomerDTO, ICustomer>();

Mapper.CreateMap<ICustomer, CustomerDTO>();

Mapper.AssertConfigurationIsValid();

Jetzt, wo ich bin mit dem Mapping

    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;
    }

Ich habe einen Dictionnary fehlt Key Exception auf der "Id" Eigenschaft ...

War es hilfreich?

Lösung

Got It!

Das Problem der fehlenden Setter von "Id" Eigentum von IBaseEntity zurückzuführen ist.

Nachdem es alles funktioniert Ändern

public interface IBaseEntity<TPk>
{
    TPk Id { get; set; }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top