我在LINQPad中构建LINQ查询表达式,它使用左外连接,分组依据和计数。该查询产生以下错误。
'AnonymousType#1'不包含'ContentTypeID'的定义 没有扩展方法'ContentTypeID'接受第一个参数 可以找到类型'AnonymousType#1'(按F4添加使用 指令或汇编参考)
这是查询。
from t1 in ContentTypes
from t2 in VwContentTRIGOF.Where(x => t1.ContentTypeID == x.ContentTypeID && new List<int> { 2588, 2227 }.Contains(x.ResearchAreaID)).DefaultIfEmpty()
where t1.IsActive == true
group new {t1, t2} by new { t1.ContentTypeID, t1.Label } into g
select new { g.Key.ContentTypeID, g.Key.Label, Disabled = g.Count(t => t.ContentTypeID == null) > 0 }
该错误突出显示了最后一行中ContentTypeID的最后一次使用,但我似乎无法安排查询以获得所需的结果。
有什么建议吗?
谢谢。
答案 0 :(得分:1)
您论坛中的每个项目都有t1
和t2
,而不是ContentTypeID
,因此我怀疑您的最终select
应该是:
select new { g.Key.ContentTypeID, g.Key.Label,
Disabled = g.Count(t => t.t2.ContentTypeID == null) > 0 }
(假设您需要来自t2
- 如果您需要来自t1
然后更改它......但鉴于t1.ContentTypeID
是密钥的一部分,这似乎不太可能......计数只是小组数。)