我有许多对象的复杂连接,这导致了一个"列表"填充的交叉口对象......
class Intersect
{
public Subject Subj { get; set; }
public Article Art { get; set; }
public TopicArticle TopArt { get; set; }
public Topic Top { get; set; }
}
var intersections = System
.Where(s => s.SystemID == systemID)
.Join(Subject,
<snip>
该部分工作正常,汇编数据正确。我接下来要做的是按Top.ID分组,同时返回Count(Sys.ID)和Top.Name。我到目前为止......
intersections.GroupBy(g => g.Top.ID)
...但是.Select()给出了错误&#34; 无法从用法中推断出类型参数。尝试明确指定类型参数&#34;然后显示两个选项 - 一个用于IQueryable,另一个用于IEnumerable。同样.Count()给出一个&#34; 不明确的&#34;错误。
我输了!这是linq的一部分,超出了我,有人可以帮助我解决这个问题的语法,我无法找到一个可以让我正确的任何可比范例。
非常感谢。
答案 0 :(得分:0)
最后设法找到一组合适的帖子,这使我能够为此建立一个解决方案。
@hkf没有看到那个,但它帮助确认我是在正确的轨道上,为此欢呼。
我想出了解决方案(非常感谢LinqPad)......
.GroupBy(q => new {q.Top.Name, q.Top.TopicID })
.Select(group => new
{
id = group.Key.TopicID,
name = group.Key.Name,
count = group.Count()
});
现在它起作用我只需要完全理解它(!)。