2012-05-06 95 views
0

我讀了這個問題類似的問題和答案,並嘗試了一些不同的方法可以做到這一點,但沒有成功。記錄按隨機順序顯示在數據網格中,而不是按姓氏排序。先謝謝你。LINQ的排序依據不工作

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; 

回答

3

這可能是因爲你被填充NameID而不是姓氏排序...試試這個:

orderby myrow.LastName 
+0

謝謝。已經很晚了,我一直在努力工作。 – harpagornis

2

我想這應該由NameID與不做

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

您排序LastName

同樣的是什麼類型theEntities.NameTable?也許你可以創建一個CollectionView,添加一個SortDescription,使這是您的DataGridItemsSource

ICollectionView myCollectionView = CollectionViewSource.GetDefaultView(theEntities.NameTable); 

myCollectionView.SortDescriptions.Add(new SortDescription("LastName", ListSortDirection.Ascending));