Bonjour

J'ai une Entity Admin qui hérite d'une Entity Member qui hérite elle-même d'une Entity DefaultUser.

Dans un composant dropdownlist d'un site asp.net, j'aimerais binder à la propriété DataTextField le champs "Name" de mon Admin qui vient de DefaultUser.

J'ai essayé le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Admins = context.Admin.Include("Member").Include("DefaultUser").ToList();
Mais ça ne fonctionne pas. J'ai une erreur m'expliquant que l'entity Admin n'a pas de propriété de navigation DefaultUser de définie.

Dans mon dropdownlist, je voudrais pouvoir écrire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
ddlAdmins.DataTextField = "Member.DefaultUser.Name";
Quelle serait la bonne requête linq to entities pour récupérer ma liste d'admin avec l'ensemble de ses objets parents?

Merci par avance

edit:

J'ai fini par trouver une solution alternative.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
Admins = context.Admin.toList();
...
foreach (Admin a in Admins)
                {
                    ddlAdmins.Items.Add(new ListItem(
                        a.Member.DefaultUser.FirstName 
                        + " " 
                        + a.Member.DefaultUser.LastName
                        , a.Id.ToString()));
                }
Je suppose qu'il doit y avoir un problème avec le binding et le lazyloading. En tout cas cette alternative fonctionne bien