Lorsque vous utilisez l'outil de tri de GridView avec Entity Framework, je peux afficher les valeurs de clé étrangère. Par exemple ...Tri par valeurs de clé étrangère dans GridView avec Entity Framework?
<asp:boundfield HeaderText="Category" DataField="Category.Name" SortExpression="Category.Name" />
... mais quand on clique sur l'en-tête pour trier les éléments de la grille, comment puis-je trier ma liste de Liste par Category.Name?
Je n'ai que la chaîne "Category.Name", je ne peux pas le faire:
.OrderBy(e => e.Category.Name)
donc j'ai essayé ... La réflexion
private static object GetPropertyValue(object obj, string propertyName)
{
PropertyInfo propertyInfo = obj.GetType().GetProperty(propertyName);
return propertyInfo.GetValue(obj, null);
}
// list is List<Widget>
// with a breakpoint here, ((Widget)list[i]).Companies.Name exists in all Widgets
list.OrderBy(e => GetPropertyValue(e, "Category.Name"))
... qui ne travail. Aucune exception levée, mais ne pas trier par Category.Name.
Des idées?
ceci devrait être marqué comme réponse, bon article –
Comment avez-vous trouvé ceci? Est-ce documenté * n'importe où *? Je me rends compte que cette réponse a presque 4 ans, mais ce serait bien si quelqu'un pouvait faire la lumière sur ce sujet, puisque je m'attendais à ce que ça ne marche pas, mais c'est ce qui s'est passé. – Vivelin