实体框架包含方法和对象

时间:2010-07-08 12:20:08

标签: entity-framework contains

有没有办法在Entity Framework 4中使用Contains方法和对象的实际id?

以这些实体为例:

public class Order
{
  public int OrderId { get; set; }              // PK
  public string CustomerId { get; set; }        // FK to Customer
}

public class OrderItem
{
  public int OrderId { get; set; }              // PK
  public int ItemId { get; set; }               // PK, FK to Item
}

public class Item
{
  public int ItemId { get; set; }               // PK
  public string ItemName { get; set; }
}

我希望返回包含项目“5”的所有订单的列表。

我希望能够做到:

List<Order> orders = db.Orders.Where(m => m.OrderItems.Contains(5)).ToList()

但这不起作用,因为Contains需要一个实际的OrderItem对象。

由于

2 个答案:

答案 0 :(得分:5)

var orders = db.Orders.Where(m => m.OrderItems.Any(i => i.OrderId == 5)).ToList();

答案 1 :(得分:3)

试试这个:

List<Order> orders = db.Orders.Where(m => m.OrderItems.Any(i=>i.OrderId==5)).ToList()

OR

List<Order> orders = db.OrderItems.Where(m => m.OrderId==5).Orders.ToList()