AutoMapper viele zu viele Beziehung in die Sammlung

Ich versuche, mithilfe von AutoMapper Entitäten über eine Many-to-Many-Tabelle einer Auflistung zuzuordnen.

Mein Domain-Modell (Entity Framework) sieht folgendermaßen aus:

public class User
{
    public int UserID { get; set; }
    public string Name { get; set; }        
    public IList<UserCompany> UserCompanies { get; set; }
}

public class Company
{
    public int CompanyID { get; set; }
    public string Name { get; set; }
}

public class UserCompany
{
    public int UserCompanyID { get; set; }
    public int UserID { get; set; }
    public int CompanyID { get; set; }
}

Ich versuche einer Klasse zuzuordnen, die so aussieht:

public class CompanyDTO
{
    public int CompanyID { get; set; }
    public string Name { get; set; }
}

public class UserDTO
{
    public int UserID { get; set; }
    public string Name { get; set; }
    public IList<CompanyDTO> Companies { get; set; }
}

Meine aktuelle Mapping-Konfiguration sieht folgendermaßen aus:

Mapper.CreateMap<Company, CompanyDTO>(); //works no problem

Mapper.CreateMap<User, UserDTO>()
    .ForMember( dto => dto.Companies,
    opt => opt.MapFrom(x => Mapper.Map<IList<Company>, IList<CompanyDTO>>(x.UserCompanies.Select( y => y.Company ).ToList())));

Die Annahme, dass die Konfiguration gültig ist, gibt true zurück. Wenn ich jedoch versuche, einen Benutzer einem UserDTO zuzuordnen, wird Folgendes angezeigt: Die Signatur des Hauptteils und die Deklaration in einer Methodenimplementierung stimmen nicht überein.

Wenn ich AfterMap verwende und manuell über jede Firma in die Firmenliste gehe, funktioniert das, aber es scheint, als ob ich in der Lage sein sollte, dies in der Karte zu erstellen.

In meiner Abfrage, einen einzelnen Benutzer aus der Datenbank abzurufen, beziehe ich die Navigationseigenschaft UserCompany.Company ein. Außerdem kann ich schnell beobachten, ob ein Benutzer zurückgegeben wird.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage