通过导航属性属性的EF命令?

通过导航属性属性的EF命令?

问题描述:

我有一个查询,看起来像这样:通过导航属性属性的EF命令?

db.Items.Where(c => c.Enabled) 
     .OrderBy(c => c.Vendor.Category.Select(b=> b.OrderPriority)) 
     .ToList(); 

我收到一个错误说我需要实现IComparable ...我不知道我在做正确的事情 - 我只是想订购我的物品OrderPriorityCategory的财产。有什么方法可以使用导航属性的属性进行排序?

基本上,您正试图通过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))