各部門で最も多くのレポートを持つ従業員を選択しようとしています。私はEntity FrameworkのLINQでこれを行う方法を理解できません。私はEF Coreを使用していますが、答えはEF 6と同じでなければならないので、いずれかの答えがうまくいきます。 .Distinct()
を使用する必要があることは分かっていますが、正しく使用する方法がわかりません。Entity Frameworkの各親プロパティの上位結果を取得
ほとんどのレポートを持つ各部門の従業員を取得するにはどうすればよいですか?クエリは、従業員のリスト(またはクエリ可能)を返す必要があります。
public class Employee
{
public long Id { get; set; }
public string Name { get; set; }
public long DepartmentId { get; set; }
public Department Department { get; set; }
public ICollection<Report> Reports { get; set; }
}
public class Department
{
public long Id { get; set; }
public string Name { get; set; }
public ICollection<Employee> Employees { get; set; }
}
これは私が始まったことですが、これが正しい方法であるかどうかはわかりません。
var employees = _context.Employees
.OrderByDescending(e => e.Reports.Count)
// ?
完璧です。それが最初に来てから私はあなたの答えを受け入れるでしょう。ありがとうございました! – vaindil