public void OrderBySubQuery([DataSources(ProviderName.SqlCe)] string context) { var testData = GetTestData(); using (var db = GetDataContext(context)) using (var table = db.CreateLocalTable(testData)) { var subQuery1 = table.OrderBy(t => t.OrderData1) .Select(c => new OrderByDistinctData { Id = c.Id * 1, DuplicateData = c.DuplicateData, OrderData1 = c.OrderData1, OrderData2 = c.OrderData2 }); var subQuery2 = subQuery1.OrderBy(t => t.OrderData1); var query = from t in table.Take(2) orderby t.Id descending select new { t.DuplicateData, Count = subQuery2.Where(s => s.DuplicateData == t.DuplicateData).Count() }; var selectQuery = query.GetSelectQuery(); var info = new QueryInformation(selectQuery); info.GetParentQuery(selectQuery); var result = query.ToArray(); } }