Wie ordne ich mit AutoMapper während einer abfragbaren Projektion einen Int seiner Enum-Beschreibung zu?

Hier ist die Erweiterungsmethode enum, um das Attribut description abzurufen.

public static string GetDescription(this Enum enumeration)
{
    if (enumeration == null)
        throw new ArgumentNullException();

    var value = enumeration.ToString();
    var type = enumeration.GetType();
    var descriptionAttribute =
        (DescriptionAttribute[]) type.GetField(value).GetCustomAttributes(typeof (DescriptionAttribute), false);

    return descriptionAttribute.Length > 0 ? descriptionAttribute[0].Description : value;
}

Hier ist das Quellobjekt:

public class Account {
    public int AccountId {get;set;}
    public int AccountStatusId {get;set;}
}

Hier ist die Aufzählung:

public enum AccountStatus {
    [Description("N/A")]
    None,
    [Description("OPEN")]
    Open,
    [Description("CLOSED")]
    Closed,
    [Description("BAD CREDIT")
    Problem
}

Hier ist das Zielobjekt:

public class GetAccountResponse {
    public int AccountId {get;set;}
    public string Status {get;set;}
}

Hier ist mein Versuch zuzuordnen (unter Verwendung der neuesten nicht statischen Automapper-Version). Denken Sie daran, dass dies während einer abfragbaren EF-Projektion geschieht.

_config = new MapperConfiguration(cfg => cfg.CreateMap<Account, GetAccountsResponse>()
    .ForMember(dest => dest.Status,
        opts => opts.MapFrom(src => ((AccountStatus) src.AccountStatusId).GetDescription())));

Hier ist die Projektion, in der die Abfrage ein @ iIQueryable<Account>:

query.ProjectToList<GetAccountResponse>(_config);

Dies ist die Ausnahme, die ich bekomme:

Kann dies nicht in abfragbaren Ausdruck auflösen

Antworten auf die Frage(2)

Ihre Antwort auf die Frage