我有两个表“代码”和“视图”,并希望获得自 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,但随后它变为空(在尝试转换之前结果中有 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; }