-2

我正在尝试查询如下对象层次结构:

客户 -->IList订单和订单 -->IList产品

我的Customer对象有一个订单集合,我的Order对象有一个产品集合。

我想做的是让订购特定产品的客户。我会查询这个product id。在查询结束时,我想获得一个Customer list.

我试过这个,但它没有用。

public ICollection<Customer> GetByParticularProduct(int productId)
{

    return allCustomers
    .Where(customer => customer.Orders
.Any(order => order.Products
.Any(prod => prod.Id == productId)))
    .ToList();
}

我怎样才能度过这个难关?

4

2 回答 2

0

如果您的收藏可能包含null's,您可以试试这个

public ICollection<Customer> GetByParticularProduct(int productId)
{
    return (from cust in allCustomers.Where(x => x != null)
            let orders = cust.Orders.Where(x => x != null)
            let prods = orders.SelectMany(x => x.Products).Where(x => x != null)
            where prods.Any(x => x.Id == productId)
            select cust)
           .ToList();
}
于 2013-01-22T21:40:20.090 回答
-1
return allCustomers
    .Where(customer => customer.Orders
        .Any(order => order.Products
            .Any(prod => prod.Id == productId))).ToList();

或者

return allCustomers
    .Where(customer => customer.Orders
        .Any(order => order.ProductId == productId))).ToList();
于 2013-01-22T20:50:14.520 回答