此問題與LINQ到實體有關。在實體LINQ語句內加入集合
我發佈了一個similar question但它沒有答案就讓人困惑,所以我提供了一個示例和一個新的求助呼籲。
我有一個類 「顏色」 含有ObservableCollection
,其具有兩個部件,Index
和Name
和填充等:
0 - 紅色
1 - 藍
2 - 綠色
和我有一個數據庫表,其中包含我最喜歡的顏色的整數列表。我想返回一個包含我最喜歡的顏色的整數值以及匹配的名稱(由observablecollection返回)的查詢,這個查詢基於存儲在數據庫中的索引值。
隔離這種說法能正常工作並返回我的顏色名稱: -
string ColorName = Colors.Names.Where(x => x.Index == 1).FirstOrDefault().Name;
但是當包括LINQ到實體查詢中: -
var query = from c in context.FavoriteColor
select (new Item
{
Id = c.Id,
ColorName = Colors.Names.Where(x => x.Index == c.ColorIndex).FirstOrDefault().Name
});
我得到這個錯誤:
無法創建類型爲'blah blah'的常量值。在此 上下文中僅支持原始類型 類型(如Int32,String和Guid)。
我明白,也許對象被LINQ的語句中返回,但我想通過指定的結束,這是一個字符串成員,請將.Name符號,它會使用並指定爲「ColorName」唉不是。
請包含「blah blah blah」我只能假設它是「ObservableCollection」以及只在編譯器中說的。 –
Aron
2013-03-07 14:11:45
阿隆 - 這是observablecollection中包含的類型。謝謝 – xnetdude 2013-03-07 14:14:29
EF無法將Color連續化到SQL中。你需要在.net中查詢,而不是在SQL中。 – Aron 2013-03-07 14:16:35