Entity framework 实体框架与排序

Entity framework 实体框架与排序,entity-framework,sorting,Entity Framework,Sorting,我试图在ASP.NET中使用GridView对实体列表进行排序,但在下面的示例中,我似乎无法使其正常工作。我的实体上有一个名为Name的属性,如果给定,我将尝试按指定列排序,如果sortExpression为空,则尝试按Name列排序 public static List<Product> GetProducts(int startRowIndex, int maximumRows, string sortExpression) { using(var context = n

我试图在ASP.NET中使用GridView对实体列表进行排序,但在下面的示例中,我似乎无法使其正常工作。我的实体上有一个名为Name的属性,如果给定,我将尝试按指定列排序,如果sortExpression为空,则尝试按Name列排序

public static List<Product> GetProducts(int startRowIndex, int maximumRows, string sortExpression) {
    using(var context = new ShopEntities()) {
        var products = context.Products;
        products.OrderBy("it."+(string.IsNullOrEmpty(sortExpression) ? "Name" : sortExpression))
                                       .Skip(startRowIndex)
                                       .Take(maximumRows);
        return products.ToList();
    }
}
publicstaticlist-GetProducts(int-startRowIndex、int-maximumRows、stringsortexpression){
使用(var context=new ShopEntities()){
var-products=context.products;
products.OrderBy(“it.”+(string.IsNullOrEmpty(sortExpression)?“Name”:sortExpression))
.Skip(startRowIndex)
.取(最大行数);
返回产品。ToList();
}
}

但是我不能把它分类。唯一的另一个选项似乎是为实体中的每个属性打开属性名称,并使用lambda。

OrderBy不会改变表达式。它返回一个新的表达式,代码将忽略该表达式。将代码更改为:

products = products.OrderBy("it."+ //...

谢谢,很难找到。另一件我不确定的事情是“it”前缀。很难用谷歌搜索它,因为它是最常见的词之一,但它只是指实体吗?是的,“它”就是实体。这仅适用于查询生成器方法。