【问题标题】:Linq orderby not workingLinq orderby 不工作
【发布时间】:2012-05-06 04:46:31
【问题描述】:

我阅读了有关此问题的类似问题和回复,并尝试了多种不同的方法来做到这一点,但都没有成功。记录以随机顺序显示在数据网格中,而不是按姓氏排序。提前谢谢你。

MyEntities theEntities = new MyEntities();

IEnumerable<NameTable> nameitems = (from myrow in theEntities.NameTable.AsEnumerable()
orderby myrow.NameID
select new NameTable
    {NameID = myrow.NameID,
    FirstName = myrow.FirstName,
    LastName = myrow.LastName});

ObservableCollection<NameTable> nameitemsOC = new ObservableCollection<NameTable>(nameitems);

return nameitemsOC;

【问题讨论】:

    标签: c# .net linq linq-to-sql sql-order-by


    【解决方案1】:

    这可能是因为您按 NameID 而不是 LastName 订购...试试这个:

    orderby myrow.LastName
    

    【讨论】:

      【解决方案2】:

      我认为应该这样做

      IEnumerable<NameTable> nameitems = (from myrow in theEntities.NameTable.AsEnumerable()
           orderby myrow.LastName
           select new NameTable { 
             NameID = myrow.NameID, 
             FirstName = myrow.FirstName, 
             LastName = myrow.LastName 
           });
      

      【讨论】:

        【解决方案3】:

        您按NameID 而非LastName 排序。

        theEntities.NameTable 又是什么类型?也许您可以创建一个CollectionView,添加一个SortDescription,然后将其设为您的DataGridItemsSource

        ICollectionView myCollectionView = CollectionViewSource.GetDefaultView(theEntities.NameTable);
        
        myCollectionView.SortDescriptions.Add(new SortDescription("LastName", ListSortDirection.Ascending));
        

        【讨论】:

          猜你喜欢
          • 2014-03-04
          • 2011-06-13
          • 2014-10-21
          • 1970-01-01
          • 2012-11-07
          • 1970-01-01
          • 1970-01-01
          • 2016-01-26
          相关资源
          最近更新 更多