Свести / Разблокировать данные от сущностей к моделям с помощью AutoMapper

1

Я хотел бы сгладить /unflatten некоторые классы, используя automapper, но не уверен, что это возможно. У меня есть ListDefo и ValueDefo, которые определяют список и значения. Затем пользователь может добавить их в объект данных. Я не беспокоюсь о хранении идентификатора ValueDefo в DataValue, так как мне просто нужно значение строки. Вот классы

public class ListDefo {
    public long Id { get; set; }
    public virtual ICollection<ValueDefo> Values { get; set; }
}

public class ValueDefo {
    public long Id { get; set; }
    public string Value { get; set; }
}

public class Data {
    public long Id { get; set; }
    public ICollection<DataValue> Values { get; set; }
}

public class DataValue {
    public long Id { get; set; }
    public virtual ListDefo ListDefo { get; set; }
    public string Value { get; set; }
}

В настоящее время, если я использую automapper, у меня будут следующие модели, которые я получаю объект Data со свойством Values, и каждый DataValue имеет Id, ListDefoId и Value.

public class DataModel {
    public long Id { get; set; }
    public ICollection<DataValueModel> Values { get; set; }
}

public class DataValueModel {
    public long Id { get; set; }
    public long ListId { get; set; }
    public string Value{ get; set; }
}

Это прекрасно, я полагаю, но я думал, что это будет чище, если вместо этого объект данных имеет список списков, то каждый список имеет только значения. Таким образом, это будет выглядеть так

public class DataModel {
    public long Id { get; set; }
    public ICollection<DataListModel> Lists { get; set; }
}

public class DataListModel {
    public long Id { get; set; }
    public string Name { get; set; }
    public ICollection<DataValueModel> Values { get; set; }
}

public class DataValueModel {
    public long Id { get; set; }
    public string Value{ get; set; }
}

Можно ли это использовать с помощью automapper? Я хотел бы снова это сделать

Я мог бы сделать это легко, если бы изменил свои сущности, чтобы хранить данные, подобные моделям, но было бы бессмысленно иметь запись списка, которая просто связывает записи данных и записи значений

Теги:
automapper

1 ответ

0

Вы можете использовать пользовательские сопоставление/распознаватели для сглаживания /unflatten классов с Automapper, тем не менее, чем больше иерархии, чем ваши классы будут иметь более сложный ваш резольвер.

Вы можете сохранить одну и ту же иерархию своих моделей (DTO), но удалить все свойства, которые, по вашему мнению, не должны устанавливать клиентом, теперь, когда вы хотите вернуться к исходному объекту из DTO, вы можете игнорировать эти свойства и карту просто свойства, которые имеет ваша модель (DTO).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню