我有两个表“代码”和“视图”,并希望获得自x天前以来大多数视图的20个代码列表(这就是我的变量dt)。 我能够获得列表并对其进行排序,但我有一个问题我还想包括其他2个表“用户”和“语言”。
var query = from f in _db.Codes
select new
{
Code = f,
PostCount = f.ViewModels.Count(p => p.timestamp > dt)
};
var result = query.OrderByDescending(x => x.PostCount).Select(y => y.Code).Take(20)
但是在这样做之后我不能包括我的其他桌子。我试图将结果转换为ObjectQuery,但随后它变为null(在尝试转换之前结果中有20个代码)。
代码模型如下所示
[Key]
public int CodeID { get; set; }
public int UserID { get; set; }
public UserModel User { get; set; }
[DisplayName("Language")]
public int LanguageID { get; set; }
public LanguageModel Language { get; set; }
public virtual ICollection<ViewModel> ViewModels { get; set; }
答案 0 :(得分:0)
简易解决方案:
IEnumerable<CodeModel> posts = _db.Codes
.Include("User")
.Include("Language")
.OrderByDescending(f => f.ViewModels.Count(p => p.timestamp > dt))
.Take(20);