J'ai trois objets du cadre d'entités qui sont imbriqués les uns dans les autres - voir l'image ci-dessous. J'ai également généré des objets similaires en tant que DTO pour les mettre en correspondance.
Ma question est donc la suivante : en tant que document d'entreprise possède une liste de ListCompanyDocumentsType Lorsque j'exécute une requête pour sélectionner toutes les entreprises, celle-ci renvoie une liste d'entreprises et de leurs documents, ainsi qu'une liste de types de documents avec une liste de tous les documents que chaque type possède dans la base de données (comme une boucle).
Existe-t-il un moyen de renvoyer le document de l'entreprise avec un seul type de document ? Ou est-ce que je l'ai mal conçu ? Pour résoudre ce problème, j'ai utilisé un objet mappé et un for each qui renvoie le nom du type dans une propriété DTO non mappée. Cela fonctionne donc, mais je ne suis pas sûr que ce soit la bonne méthode.
J'ai également essayé d'utiliser EF .include() pour aller jusqu'à ListCompanyDocumentTypes, mais il renvoie toujours tous les documents que chaque type possède.
var config = new MapperConfiguration(cfg => { cfg.CreateMap<Company, CompanyDto>(); cfg.CreateMap<CompanyDocument,CompanyDocumentDto>();});
var mapper = config.CreateMapper();
var newDtoTest = mapper.Map<List<CompanyDto>>(companiesReturn);
var db = new entities();
foreach (var companyDto in newDtoTest)
{
foreach (var companyDtoCompanyDocument in companyDto.CompanyDocuments)
{
companyDtoCompanyDocument.dtoTypeName = (await db.ListCompanyDocumentsTypes.FirstOrDefaultAsync(p=> p.id.Equals(companyDtoCompanyDocument.typeId))).typeName;
}
}
Nous vous remercions,