我有两个简单的实体
活动视图有2个属性ActivityID和DateTime。这个实体允许我每次访问活动时都能看到。
我现在想编写一个LinqToEntity查询,该查询按照查看次数的降序返回活动列表。
到目前为止,我已经提出了这个
var activities= ((from a in db.Activities
join av in db.ActivityViews on a.ID equals av.Activity.ID
group a by new { a } into g
select new { g, No = g.Count() }).OrderByDescending(x => x.No)).Select(x => x.g).ToList();
它有点工作,但它返回了一个匿名类型列表,我想得到一个活动类型列表。我不希望返回视图的数量,只是为了让它们被它们命令。
编辑:我把它拿回来的东西根本不起作用,如果现在有一个Activity的ActivityViews没有返回任何内容。
答案 0 :(得分:1)
基本上,如果您将分组的任何内容归为关键,那么如果您只选择密钥,您将获得所需的密钥。
这将是一个解决方案。
var activities=
(
(
from a in db.Activities
join av in db.ActivityViews
on a.ID equals av.Activity.ID
group a by a into g
select new {
a = g.Key,
No = g.Count() }
).OrderByDescending(x => x.No)
).Select(x => x.a)
.ToList();
立即着手解决此问题。