7 sorting itemscontrol entity-framework-4 entitycollection
我想为绑定到ItemsControl(在xaml中)的EntityCollection添加一些排序.我也想尽可能简单地做.看来这是不可能的.
如果我将集合包装在实体中的集合属性的"已排序"版本中,则会丢失集合更改通知.我不能使用CollectionViewSource,因为实体集合的BindingListCollectionView不支持对某些该死的原因进行排序(注意:我已经看到了带有"脏"黑客的博客帖子来解决这个问题,所以请不要回答那个kthx ).
是否有一个简单的(几行xaml,几行代码,无论如何)实现这个方法?
EntityCollection 类型无法直接过滤或排序。这是一个常见的 LINQ-to-Entities 问题,请参阅: 使用 LINQ-to-Entities 选择父对象时对子对象进行排序
一种解决方案是在需要数据时使用 LINQ 单独对实体集合进行排序,但这会导致额外的性能损失。如果您正在使用一个预计较小和/或不经常使用的集合,则处理时间的差异可能可以忽略不计。
如果您希望数据库执行排序并使用任何索引,您可以将主实体与子实体一起投影。Alex James 在他的 MSDN 博客中发布了一个示例:http ://blogs.msdn.com/b/alexj/archive/2009/02/25/tip-1-sorting-relationships-in-entity-framework.aspx 。当然,您不仅限于匿名类型。