交點我有3個車型命名爲:C#LINQ實體查詢的兩種不同的性質
鉛筆具有Pencil.Id(int)和Pencil.Colors(IEnumerable的)屬性
具有Pen.Id(int)和Pen.Colors(IEnumerable)的筆屬性
顏色具有Id和名稱。
鉛筆與顏色(許多到多) 筆與顏色(許多到多)
我想建立一個查詢,它會顯示我的相同顏色的關係的關係我持有的鋼筆。
我使用下面的LINQ到實體查詢:
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或字符串,而不是對象。
我該怎麼辦?預先感謝您的幫助。
編輯: 我創建了一個新的問題,爲下一個可能的問題:C# LINQ to Entities- Properties on the intersection of an object and a collection of objects
你是不是在複雜呢?回想一下普通的SQL(這就是你的查詢將被轉換爲的東西),你可不可以直接從db.Pencils中的m中說m.Color = p.Color select m? – 2012-07-30 13:01:31
顏色模型是IEnumerable,因此它有不止一種顏色。例如一支筆有15種不同的顏色,一支筆有25種不同的顏色。我想看看鉛筆的顏色中是否有一種顏色也是可用的。 – MrGorki 2012-07-30 13:03:53
如果您的顏色屬性是可枚舉的,那麼可能使用'Colors'或'Palette'來更好地描述它的意圖。 – 2012-07-30 13:18:36