Как сделать агрегацию в AutoMapper? - PullRequest
1 голос
/ 17 января 2020

Я работаю в проекте, который использует AutoMapper для сопоставления наших POCO ORM (Object-Relational Mapper) (Plain Old CLR Objects) с моделями представления, которые мы представляем в пользовательском интерфейсе.

У меня есть экземпляр, в котором это включает в себя агрегирование записей.

POCO, который является нашим входом:

public class WorkRecord
{
    public int id {get; set; }
    public string work { get; set; }
    public string type { get; set; }
    public string result { get; set; }
}

И что мы хотим в качестве вывода:

public class WorkViewModel
{
    public string Work { get; set; }
    public List<WorkInstance> WorkInstances { get; set; }

    public class WorkInstance
    {
        public string Type { get; set; }
        public string Result { get; set; }
    }
}

Что я хочу преобразовать список WorkRecords в список WorkViewModels, где количество выходных данных WorkViewModels не совпадает с количеством WorkRecords.

Я хочу один WorkViewModel для каждого отдельного WorkRecord.work с дочерним элементом WorkViewModel.WorkInstance, созданный для каждого WorkRecord с этим WorkRecord.work.

Например:

[
    {id: 1, work: "WorkA", type: "Type1", result: "Success"},
    {id: 2, work: "WorkA", type: "Type2", result: "Failure"},
    {id: 3, work: "WorkB", type: "Type3", result: "Success"},
    {id: 4, work: "WorkB", type: "Type4", result: "Failure"},
]

Должно привести к:

[
    {
        Work: "WorkA",
        WorkInstances: [
            WorkInstance: {
                Type: "Type1",
                Result: "Success"
            },
            WorkInstance: {
                Type: "Type2",
                Result: "Failure"
            }
        ]
    },
    {
        Work: "WorkB",
        WorkInstances: [
            WorkInstance: {
                Type: "Type3",
                Result: "Success"
            },
            WorkInstance: {
                Type: "Type4",
                Result: "Failure"
            }
        ]
    }
]

Я не вижу великого способ сделать это в AutoMapper.

Есть идеи?


Отредактировано для исправления синтаксиса в объявлении WorkInstance.

То, что я не собирался выяснить, это как отобразить коллекцию n входные объекты в m выходные объекты, где m <<em> n .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...