我有这个 Linq 查询,它(正确地)提供了来自用户的静态数据。我现在手动执行用户表的“包含”。我要找的是这个查询的结果实际上变成了父用户对象的集合。
如果我选择多个用户名(s.User.Name)而不是我现在使用的一个,我只会返回与我搜索的用户名相同数量的用户对象,并且他们的统计信息(User.Statistics)集合填充了数据就像下面的查询返回的一样。
var statistics = ((
from s in db.Statistics
where s.User.ScreenName == screenName &&
s.CreateDate > EntityFunctions.AddDays(DateTime.Now, days)
group s by EntityFunctions.TruncateTime(s.CreateDate) into dg
let maxDate = dg.Max(x => x.CreateDate)
from s2 in db.Statistics
where s2.User.ScreenName == screenName &&
s2.CreateDate == maxDate
orderby s2.CreateDate
select s2) as ObjectQuery<Statistic>).Include("User").ToList();
更新 18-05-2012 15:41
简单地返回 s2.User 将不起作用,因为它将返回用户的次数与从统计表返回的行一样多,我只想获取 1 个用户对象并让它的统计信息集合(User.Statistics)填充结果的查询。