在EF中对导航属性进行排序和选择

时间:2016-06-21 10:34:35

标签: c# .net entity-framework navigation-properties

考虑以下代码

private List<Orders> GetOrders(int id) 
{
  var result = Context.Orders.Where(x => x.OrderId == 15)
                    .Include(x => x.Products)
                    .Include(x => x.CustomerDetails)
                    .ToList();
  return result;
}

产品和CustomerDetails是订单实体的导航属性。我只想获得有关最昂贵产品的详细信息的结果。

所以我在下面试过,

Context.Orders.Where(x => x.OrderId == 15)
                    .Include(x => x.Products.OrderByDescending(p => p.Price).Take(1))
                    .Include(x => x.CustomerDetails)
                    .ToList();

但这导致错误,

EntityFramework.dll中出现“System.ArgumentException”类型的异常,但未在用户代码中处理 附加信息:Include路径表达式必须引用在类型上定义的导航属性。使用虚线路径作为参考导航属性,使用Select运算符作为集合导航属性。

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

根据this回答,这是不可能的。也许对您的具体问题的最佳答案是在装货后订购产品。