Entity Framework Содержит метод и объекты - PullRequest
1 голос
/ 08 июля 2010

Есть ли способ использования метода Contains в Entity Framework 4 с фактическим идентификатором объекта?

Возьмите эти сущности в качестве примера:

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 ]

5 голосов
/ 08 июля 2010
var orders = db.Orders.Where(m => m.OrderItems.Any(i => i.OrderId == 5)).ToList();
3 голосов
/ 08 июля 2010

Попробуйте это:

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()
...