EF GroupBy:不包含';公文包标题';并且没有扩展方法';公文包标题';接受类型的第一个
本文关键字:公文包 标题 方法 扩展 第一个 类型 GroupBy 包含 EF | 更新日期: 2023-09-27 18:19:27
这个查询有什么问题?
var model =
SessionObjectsMSurvey.ContractList
.Where(y => y.ContractTitle.ToUpper().Contains(upper))
.GroupBy(g => new
{
g.BriefTitle,
g.ContractId
})
.Select(
x => new
{
label = x.BriefTitle,
id = x.ContractId.ToString()
}).Take(20);
SessionObjectsMSurvey.ContractList是一个IEnumerable集合。
我明白,这不会编译;
错误13"System.Linq.IG分组"不包含"BriefTitle"的定义,也没有扩展方法"BriefTitle"接受类型的第一个参数'System.Linq.IGrouping'可以找到(是否缺少using指令或程序集参考?)
我认为您需要在.Select(...)
调用的两个位置插入.Key
。.GroupBy(...)
的结果是IGrouping
的可查询结果,该接口包含一个.Key
属性,用于访问组的密钥。
var model =
SessionObjectsMSurvey.ContractList
.Where(y => y.ContractTitle.ToUpper().Contains(upper))
.GroupBy(g => new
{
g.BriefTitle,
g.ContractId
})
.Select(
x => new
{
label = x.Key.BriefTitle, // Here
id = x.Key.ContractId.ToString() // And here
}).Take(20);
像这样使用密钥:
label = x.Key.BriefTitle,
id = x.Key.ContractId.ToString()
请参阅此链接。