Saya memiliki hubungan banyak-ke-banyak dan saya mencoba membuat kueri yang akan membawa saya ke sisi kiri dan properti yang menghitung jumlah catatan yang dirujuk olehnya. berikut pertanyaan saya...

0
boris 5 April 2021, 21:24

2 jawaban

Jawaban Terbaik

Seperti yang disebutkan dalam komentar, Anda harus menggunakan GroupBy untuk perhitungan seperti itu:

var query
    from user in _dbContext.Users
    from courseUsers in user.Courses
    group user by new { user.Id, user.Name } into g
    select new 
    {
        g.Key.Id,
        g.Key.Name,
        CourseUsersCount = g.Count()
    };
2
Svyatoslav Danyliv 5 April 2021, 18:56

Anda memerlukan Group By untuk menggabungkan semua CourseUsers menjadi satu set, diikuti dengan Join untuk melampirkan Pengguna ke dalamnya.

from course in _dbContext.CourseUsers // outer sequence
group course by course.UserId into courseGrp
join user in _dbContext.Users //inner sequence 
on courseGrp.Key equals user.UserId// key selector 
select new { // result selector 
  CourseUsersCount = courseGrp.Count(),
  user.Name,
  user.Id
};
1
Slava Knyazev 5 April 2021, 18:52