2011-10-13 37 views
3

我已經嘗試在每個可以想象的位置插入一個orderby到這個查詢中,但是無法讓它工作。在這個linq查詢中,我正在拉取與單個屬性相關的unitMixes列表。在unitMixes表中有一個名爲createDate的字段,我想通過它來排序結果,這看起來很簡單,但我還是無法完全掌握方法語法。在LINQ方法語法中排序

var viewModel = new propertyDetailData(); 
viewModel.properties = db.properties.Where(s => s.propertyId == id).Single(); 
viewModel.unitMixes = db.properties.Where(s => s.propertyId == id).Single().unitMixes; 

由於提前, 約翰

回答

1
viewModel.properties = db.properties.Single(s => s.propertyId == id); 
viewModel.unitMixes = db.properties.Single(s => s.propertyId == id).unitMixes 
             .OrderBy(m => m.createDate) 
             .ToList(); 

你可以做名單上的排序依據。 你不需要得到清單,然後做.Single()你可以搜索Single()元素equals你的delegate

0
viewModel.unitMixes = db.properties.Where(s => s.propertyId == id) 
            .Single().unitMixes 
            .OrderBy(m => m.createDate) 
            .ToList(); 
0
viewModel.properties = db.properties.Where(s => s.propertyId == id).Single(); 
viewModel.unitMixes = viewModel.properties.unitMixes.OrderBy(u => u.createDate);