EF GroupBy:不包含’BriefTitle’的定义,也没有扩展方法’BriefTitle’接受类型的第一个参数
这个查询有什么问题?
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.IGrouping’不包含’BriefTitle’的定义,并且没有扩展方法’BriefTitle’接受类型’System.Linq.IGrouping’的第一个参数可以找到(你是否缺少using指令或者assembly参考?)
我认为您需要在.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()
看到这个链接。