【发布时间】:2013-03-22 09:06:18
【问题描述】:
我正在尝试编写 LINQ2Entity 查询,它将仅从表中返回 3 列,然后将结果设置为 DataSource 的 ComboBox。
我的问题是这样的。首先 - 从表中选择所有我使用这样的服务:
IList<SoleColor> soles = SoleColorService.All().ToList();
准备好设置为等待此类型数据的 ComboBox 的 DataSource。但是,因为我想选择匿名对象来仅存储查询结果中的 3 列,所以我修改了我的查询,如下所示:
IList<SoleColor> soles = SoleColorService.All()
.GroupBy(t => t.Sole.Code)
.Select(g => new
{
SoleCode = g.Key,
SoleName = g.Select(t => t.Sole.Name),
SoleId = g.Select(t => t.SoleID)
});
这会导致将 .Selectas 错误标记为以下文本“无法将 System.Linq.IQueryable 类型隐式转换为 System.Collections.Generic.IList”。如果我将 IList<SoleColor> soles = 更改为 var soles = 很好,但是分配匿名类型(如 DataSource)时会出现问题,但我认为这可以在查询中修复,所以我在那里得到正确的类型。同样在某些时候,我必须在查询中添加First() 或FirstOrDafult() 之类的内容,因为我有许多具有相同SoleCode 的记录,并且我只想为每个唯一的SoleCode 保留一个记录。
【问题讨论】:
标签: c# linq-to-entities anonymous-objects