【问题标题】:Sorting and selecting latest on Navigation Property in EF在 EF 中对导航属性进行排序和选择最新
【发布时间】:2016-06-21 10:34:34
【问题描述】:

考虑下面的代码

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;
}

Products 和 CustomerDetails 是 Orders 实体上的导航属性。我只想获得包含最昂贵产品详细信息的结果。

所以我在下面尝试了,

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”类型的异常,但未在用户代码中处理 附加信息:包含路径表达式必须引用在类型上定义的导航属性。对引用导航属性使用虚线路径,对集合导航属性使用 Select 运算符。

如何解决这个问题?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 或者实际上是它下面的答案,它显示了如何做到这一点!下次我必须阅读第一个答案...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 2012-05-05
    相关资源
    最近更新 更多