有没有办法在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对象。
由于
答案 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()