我正在尝试为以下查询编写等效的 linq 代码。
SELECT A.*
FROM
(
SELECT * FROM TableA
WHERE id = 100
) a
JOIN
(
SELECT Name, MAX(AnotherId) AnotherId
FROM TableA
WHERE id = 100
GROUP BY Name
) b
on a.Name = b.Name and a.AnotherId = b.AnotherId
这是 linq
var Collection = from R in DbContext.TableA
join G in (DbContext.TableA.Where(r => r.Id == 100).GroupBy(r => new { r.Name, r.AnotherId } ).Select(g => new { Name = g.Name , AnotherId = g.Max(o => o.AnotherId) }))
on new { R.Name, R.AnotherId } equals new { G.Name, G.AnotherId }
where R.Id == 100
select R;
但是我遇到了我不知道如何修复的编译错误。有什么想法吗
join 子句中的表达式之一的类型不正确。对“加入”的调用中的类型推断失败。
错误 7“System.Linq.IGrouping”不包含“Name”的定义,并且找不到接受“System.Linq.IGrouping”类型的第一个参数的扩展方法“Name”(您是否缺少 using 指令或装配参考?)