【发布时间】:2017-04-26 03:05:47
【问题描述】:
我正在尝试按相关对象的属性进行排序。只是一个例子,情况就是这样。我有这两个类:
public class Publication
{
public int Id { get; set; }
public string Name { get; set; }
public List<Product> Products { get; set; }
}
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public int PublicationId { get; set; }
[ForeignKey("PublicationId")]
public Publication Publication { get; set; }
public int Category { get;set; }
}
现在我需要获取 Product's Category = 1 并按 Publication Id desc 排序的所有出版物:
IQueryable<Publication> query = db.Publications.Where("Products.Any(Category = 1)");
List<Publication> list = query.OrderBy("Id desc").ToList();
这很好用!但是...如何使用 Dynamic Linq 按产品类别(desc 或 asc)订购出版物?
【问题讨论】:
-
你不能只做 OderByDescending 吗? (msdn.microsoft.com/en-us/library/bb534861(v=vs.110).aspx)
-
顺序(asc 或 desc)现在不是问题。问题是关于如何按关系排序(按升序或降序)。在这种情况下,类别(来自产品)
-
Publication有一个或多个产品,因此也有类别。您首先应该定义如何对类别集合进行排序。 -
一个出版物有一个或多个产品。 Category 只是 Product 中的一个整数。我只需要根据产品类别的数量对 PUBLICATIONS 进行排序。
标签: c# asp.net entity-framework linq