EF5根据子集合内容选择对象

时间:2013-11-18 18:33:49

标签: c# .net linq entity-framework

我有以下情况:

public Order
{
    ICollection<OrderItems> OrderItems {get; set;}
}

public OrderItem
{
    ICollection<ProductReferences> ProdReferences {get; set;}
}

我希望获得具有特定产品的所有订单的集合,例如类似的东西:

Orders.Where(o=>o.OrderItems.Any(oi=>oi.Name.Equals(someName))).ToList();

但我想更深入一级。如:

Orders.Where(o=>o.OrderItems.Any(oi=>oi.ProdReferences.Any(pr=>pr.Name.Equals(someName)))).ToList();

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

尝试:

Orders.Where(
    o => o.OrderItems.Any(
        oi => oi.ProdReferences.Any(
            pr => pr.Name.Contains(someName))));

即,将pr.Name.Equals替换为pr.Name.Contains