J'ai la classe suivanteAutomapper supprime tous les tableaux lors du mappage même classe
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; }
}
J'ai aussi ce qui suit dans le constructeur de mon BaseRepository
Mapper.Initialize(cfg =>
{
cfg.CreateMap<Unit, Unit>();
});
Mon problème est que quand je, dans mon référentiel, faire Mapper.Map(unitToUpdate, unit);
il vide toutes les propriétés List<whatever>
.
Est-ce le comportement par défaut? Est-ce que je fais quelque chose de mal ici?
Pour être complet, voici ma fonction Mettre à jour l'
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);
}
L'objet stocké est un autre type contenant une hiérarchie de Unit
objets représentant une entreprise. L'objet org
est ce qui est stocké dans la base de données et la classe représentant l'objet org
possède ses propres fonctions pour charger Unit
objets à l'intérieur de lui-même.
Mais c'est la même classe .. Je suis la cartographie de l'unité à l'unité. C'est juste que l'on est frais à partir de la base de données, et on est modifié depuis le contrôleur mvc qui l'appelle. –
Je ne sais vraiment pas ce scénario parce que je n'ai pas utilisé le mapping de/vers la même classe. Je sais qu'il y a eu quelques problèmes il y a quelques temps liés à cela, donc j'ai évité (un exemple: https://github.com/AutoMapper/AutoMapper/issues/656) –
Peut-être qu'il est préférable de créer un problème de github aussi car ce n'est pas 'T si bien documenté et peut se rapporter à certains chemins internes que nous sommes choisis en développement. –