C #Запрос LINQ to Entities на пересечение двух разных свойств

У меня есть 3 модели с именем:

Pencil having Pencil.Id(int) and Pencil.Colors(IEnumerable) Property

Pen having Pen.Id(int) and Pen.Colors(IEnumerable) Property

Colors having Id and name.

Карандаш имеет отношение к цветам (много -к -много )Перо связано с цветами (много -к -много)

Я хочу создать запрос, который покажет мне карандаши того же цвета для ручки, которую я держу.

Я использую приведенный ниже запрос LINQ -to -Entities:

int id = id_of_the_pen_that_i_am_holding;
Pen p = db.Pens.Find(id);
var list = from m in db.Pencils where m.Colors.Intersect(p.Colors) != null select m;

Модель цветов IEnumerable, поэтому она имеет более 1 цвета. Например; у ручки 15 разных цветов, а у карандаша 25 разных цветов. Я хочу принести соответствующий карандаш, если один из цветов ручки, которую я держу, также доступен в цветовой палитре этого карандаша.

Но я получаю исключение для использования обычных переменных, таких как int или string, а не объектов.

Что я могу сделать? Заранее спасибо за вашу помощь.

ОТРЕДАКТИРОВАНО: Я создал новый вопрос для следующей возможной проблемы:C #LINQ to Entities -Свойства на пересечении объекта и набора объектов

5
задан Community 23 May 2017 в 11:52
поделиться