public void TestOrderByExtendReplace() { using (var context = new DbContext()) { var sorting = new SortDefinition(); sorting.Member = "ReorderLevelName"; sorting.Replace("ReorderLevelName", "Products.ReorderLevel"); var list = context.OrderDetails .Select(s => s.ExtendAs <OrderDetails>(() => new OrderDetails { ReorderLevelName = s.Products.ReorderLevel.GetDescription(), })) .OrderBy(sorting) .ToList(); Console.WriteLine(list.Count); } }