「Codes」と「Views」の 2 つのテーブルがあり、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; }