通过导航属性属性的EF命令?
问题描述:
我有一个查询,看起来像这样:通过导航属性属性的EF命令?
db.Items.Where(c => c.Enabled)
.OrderBy(c => c.Vendor.Category.Select(b=> b.OrderPriority))
.ToList();
我收到一个错误说我需要实现IComparable
...我不知道我在做正确的事情 - 我只是想订购我的物品OrderPriority
Category
的财产。有什么方法可以使用导航属性的属性进行排序?
答
基本上,您正试图通过OrderPriority
s的集合订购Items
。这是因为Vendor
有多个Categories
(或可能有,因为它是1-n关联)。
我不确定是否有可能表达您想表达的内容。如果您想订购Items
的最高OrderPriority
在其Vendor
的分类中找到,您可以做
db.Items.Where(c=>c.Enabled)
.OrderBy(c => c.Vendor.Category.Max(b=> b.OrderPriority))