Entity framework 实体框架与排序
我试图在ASP.NET中使用GridView对实体列表进行排序,但在下面的示例中,我似乎无法使其正常工作。我的实体上有一个名为Name的属性,如果给定,我将尝试按指定列排序,如果sortExpression为空,则尝试按Name列排序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
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”前缀。很难用谷歌搜索它,因为它是最常见的词之一,但它只是指实体吗?是的,“它”就是实体。这仅适用于查询生成器方法。