0
votes

Comment accéder à la propriété virtuelle d'un autre objet de mon objet

J'ai un modèle d'utilisateur et cet utilisateur a un pays virtuel. Le pays a un nom que j'essaie d'accéder. Il ne s'agira pas d'imprimer à mon avis, c'est juste vide.

My Modèle est celui-ci. xxx

et le Pays Le modèle a un getname pour le pays. Mon index ressemble à ceci: xxx

maintenant, lorsque j'essaie de le montrer sur ma page d'index comme ceci: xxx

Le prénom, le nom, l'e-mail et la ville apparaissent. Mais le nom nom de pays n'est pas. Comment cela peut-il être?


2 commentaires

Pouvez-vous coller s'il vous plaît le corps de votre _usermanager pour montrer comment vous définissez la propriété des utilisateurs? Il pourrait s'agir d'un cas d'ajouter simplement le dbcontext.user.include (x => x.country)


Les réponses ci-dessous en supposent que vous utilisez un cadre d'entité. Si vous souhaitez ajouter la balise appropriée (entité-framework-6 ou entité-cadence-core). Sinon ajoutez des informations sur l'ormission que vous utilisez.


3 Réponses :


0
votes

On dirait que le modèle de comté n'est jamais chargé de la base de données avant de faire le .tolist () ... Après cet appel Tolist, les objets sont détachés de la base de données et de chargement paresseux ne fonctionneront pas.

Essayez ceci: _usermanager.user.include ("pays"). Tolist ();

En outre, simplement sortir de l'appel Tolist () permettrait probablement au chargement paresseux de fonctionner, mais serait un problème de performance si la liste des utilisateurs devient grande.

merci, Gary


1 commentaires

Cela a fonctionné! Merci! Ma liste des utilisateurs est très grande. Environ 9000 ne vont pas essayer sans tolisser ()



0
votes

Vous ne devriez avoir aucun problème à accéder aux propriétés virtuelles de la vue. Assurez-vous que vous appelez country.getname () ou votre nom nom a un getter comme xxx

aussi par les méthodes de la convention C # sont Cascal cascal.


0 commentaires

0
votes

Essayez d'ajouter le Inclure (x => x.country) code> à l'endroit où vous définissez la propriété _usermanager / utilisateurs code>, il ne devrait s'agir que quelque chose comme

dbcontext.Users.Include(x => x.Country)


0 commentaires