Получение данных при связи Многие ко многим

46
06 июля 2018, 05:20

Есть 2 модели. Между ними связь многие ко многим. Вот они:

public class Orders
    {
        public int Id { get; set; }
        public DateTime OrderDate { get; set; }
        public string Status { get; set; }
        public double TotalPrice { get; set; }
        public int ClientsId { get; set; }
        public virtual Clients Clients { get; set; }
        public int? WorkingId { get; set; }
        public virtual Working Working { get; set; }
        public virtual ICollection<Spares> Spares { get; set; }
        public Orders()
        {
            Spares = new List<Spares>();
        }
    }
public class Spares
    {
        public int Id { get; set; }
        public string SparePartName { get; set; }
        public double Price { get; set; }
        public int Count { get; set; }
        public string WinCode { get; set; }
        public virtual ICollection<Orders> Orders { get; set; }
        public Spares()
        {
            Orders = new List<Orders>();
        }
    }

Мне нужно достать все Spares, у котрых входит в коллекцию конкретный Order который я задаю. Я попробовал вот как:

var tmp = db.Spares.Include(s => s.Orders.Where(o => o.Id == order.Id));

order.Id это мой order который у меня получен ранее в коде.

Но при такой попытке у меня выскочила ошибка:

Подскажите пожалуйста что я делаю не так? Как можно вытащить необходимые мне данные?

Answer 1

Если я правильно понял задачу, то вы хотите

var tmp = db.Spares.Where(s => s.Orders.Any(o => o.Id == 123));

С Include (если вдруг вам нужен) то это будет

var tmp = db.Spares.Include(x => x.Orders).Where(s => s.Orders.Any(o => o.Id == 123));

Но похоже, что вам Include особо не нужен, просто вы не так поняли, для чего он применяется.

READ ALSO
Как работать со связями многие-ко-многим, используя LINQ?

Как работать со связями многие-ко-многим, используя LINQ?

Как работать со связями многие-ко-многим?

55
Проблема с udp сокетами

Проблема с udp сокетами

Делаю клиент-серверную игру на 2х игроковСервер ждет пока 2 игрока пришлют информацию и затем рассылает друг друг

56
c# переопределение ToString() для коллекции

c# переопределение ToString() для коллекции

Как можно переопределить метод ToString() для коллекции?

43
C#. Создание сводной диаграммы через epplus

C#. Создание сводной диаграммы через epplus

Нужна помощь с преобразованием таблицы в сводную диаграмму, таблица формируется из datagridview в excel через epplus, на скринах пример таблицы и сводной...

41