在LINQ方法语法中排序

问题描述:

我已经尝试在每个可以想象的位置插入一个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; 

由于提前, 约翰

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

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

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