此问题与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