7

J'aimerais ajouter du tri à un EntityCollection qui est lié à un ItemsControl (en xaml). J'aimerais aussi le faire aussi simplement que possible. Il semble que ce n'est pas possible. Si j'emballe la collection dans une version "triée" de la propriété de collection dans l'entité, je perds les notifications de modification de collection. Je ne peux pas utiliser CollectionViewSource car BindingListCollectionView de la collection d'entités ne prend pas en charge le tri pour une raison foutue (note: J'ai vu l'article de blog avec le hack "sale" pour contourner ce problème, alors ne répondez pas avec ce kthx).Quelle est la manière la plus simple de trier une EntityCollection EF4 <T>?

Existe-t-il un moyen simple (quelques lignes de xaml, quelques lignes de code, peu importe) d'y parvenir?

Répondre

3

Le type EntityCollection ne peut pas être directement filtré ou trié. C'est un problème LINQ à entités communes, voir: Sort child objects while selecting the parent using LINQ-to-Entities

Une solution serait de trier la collection d'entités séparément en utilisant LINQ lorsque vous avez besoin des données, et encourent la perte de performance supplémentaire. Si vous travaillez avec une collection que vous pensez être petite et/ou peu utilisée, la différence de temps de traitement pourrait être négligeable.

Si vous souhaitez que la base de données effectue le tri et utilise des index, vous pouvez projeter l'entité principale avec les entités enfants. Alex James publie un exemple dans son blog MSDN: http://blogs.msdn.com/b/alexj/archive/2009/02/25/tip-1-sorting-relationships-in-entity-framework.aspx. Vous n'êtes pas limité aux types anonymes, bien sûr.

Questions connexes