У меня есть следующий классAutomapper удаляет все массивы при картографировании же класса
public class Unit
{
[JsonProperty("id")]
public string Id { get; set; }
[JsonProperty("unittype")]
public UnitType UnitType { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("language")]
public string Language { get; set; }
[JsonProperty("managers")]
public List<Manager> Managers { get; set; }
[JsonProperty("logoURL")]
public string LogoURL { get; set; }
[JsonProperty("naceCodeList")
public List<string> NaceCodeList { get; set; }
[JsonProperty("tags")]
public List<string> Tags { get; set; }
[JsonIgnore]
public string JoinedTags => string.Join(",", Tags);
[JsonProperty("respondents")]
public List<Respondent> Respondents { get; set; }
[JsonProperty("childUnits")]
public List<Unit> ChildUnits { get; set; }
public string Parent { get; set; }
}
У меня также есть следующие в конструкторе моего BaseRepository
Mapper.Initialize(cfg =>
{
cfg.CreateMap<Unit, Unit>();
});
Моя проблема заключается в том, что, когда я, в моем репозиторий, do Mapper.Map(unitToUpdate, unit);
он опустошает все объекты List<whatever>
.
Это поведение по умолчанию? Я здесь что-то не так?
Для полноты, вот моя UpdateUnit функция
public void UpdateUnit(ClaimsPrincipal user, string orgId, Unit unitToUpdate)
{
var org = Get(user, orgId);
var unit = org.GetUnit(unitToUpdate.Id);
Mapper.Map(unitToUpdate, unit);
Update(user, org);
}
Сохраненная объект другого типа, содержащий иерархию Unit
объектов, представляющих компанию. Объект org
- это то, что хранится в базе данных, а класс, представляющий объект org
, имеет свои собственные функции для загрузки объектов Unit
.
Но это тот же класс .. Я сопоставлен с единицей. Это просто, что он свежий из базы данных, и один из них изменен из контроллера mvc, вызывающего его. –
Я действительно не знаю об этом сценарии, потому что я не использовал отображение из/в тот же класс. Я знаю, что некоторые проблемы были связаны с этим, поэтому я избегал (один пример: https://github.com/AutoMapper/AutoMapper/issues/656) –
Возможно, лучше создать проблему github, так как это isn так хорошо документированы и могут относиться к некоторым внутренним путям, которые мы выбрали в процессе разработки. –