我有一个名叫Orders
的表和一个名为 Customers
的列表。 Orders
有一个属性叫做CustomerId
。现在我想获取所有在我的Customers
列表中的客户的订单。
我尝试了以下方法:
IEnumerable<Customer> customers; // list of customers
List<Order> orders = dbContext.Orders.Where(x => customers.Any(y => y.Id == x.CustomerId)).Include(x => x.someOtherTable).ToList();
由于某些原因,这总是导致异常,提示无法转换LINQ表达式。我的假设是这是因为订单中的CustomerId可为空。不过我不确定。
订单:
public int Id { get; set; }
public int? CustomerId { get; set; } // has to be nullable
...
客户:
public int Id { get; set; }
public string Name { get; set; } // has to be nullable
...
由于简洁性,这只是一个小片段。
IEnumerable<Customer> customers;
? - Backs