我正在尝试编写 LINQ2Entity 查询,它将仅从表中返回 3 列,然后将结果设置为 aDataSource
的 a 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)
});
这导致.Select
使用以下文本“无法将类型 System.Linq.IQueryable 隐式转换为 System.Collections.Generic.IList”标记为错误。如果我IList<SoleColor> soles =
改为var soles =
它很好,但是分配匿名类型(如 DataSource)时会出现问题,但我认为这可以在查询中修复,所以我在那里得到正确的类型。另外在某些时候我必须添加类似First()
orFirstOrDafult()
到 y 查询,因为我有许多相同的记录,SoleCode
我只想为每个 unique 保留一个SoleCode
。