如何使用LINQ过滤子集合的属性(.Any())

Jef*_*eff 4 linq nhibernate

如何在LINQ中执行以下SQL?我实际上正在使用LINQ到NHibernate(但是由于我认为嵌入式lambda表达式,它可能在NHibernate LINQ中不可能).但我想知道如何在LINQ中做到这一点.我以前从未遇到过这种情况.

SELECT c.CustomerID, c.CustomerName --etc
FROM   Customers c
       INNER JOIN Orders o
         ON c.CustomerID = o.CustomerID
WHERE  o.Status = 1

public class Customer
{
  public int CustomerID { get; set; }
  public string CustomerName { get; set; }  
  public IList<Order> Orders { get; set; }
}

public class Order
{
  public int OrderID { get; set; }
  public int CustomerID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想做类似的事情:

var customers = 
    (from c in Customers
    where c.Orders.Where(o => o.Status == 1)
    select c).ToList();
Run Code Online (Sandbox Code Playgroud)

谢谢!

Dar*_*opp 11

where语句返回一个集合.你想使用Any()方法

var customers = from c in Customers
                where c.Orders.Any(o => o.Status = 1)
                select c
Run Code Online (Sandbox Code Playgroud)