kzen.dev
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
Shane  Adrian Muaz
Shane Adrian Muaz
Question

kueri linq untuk memilih 10 entri teratas dengan komentar terbanyak dari tabel

Saya memiliki dua tabel "POSTS" dan "COMMENTS". Satu postingan dapat memiliki banyak komentar dan saya ingin dapat memilih 10 postingan teratas dengan jumlah komentar terbanyak. Post_id adalah sebuah FK dalam tabel komentar. Saya menggunakan Linq ke SQL. Mohon sarannya bagaimana cara melakukan hal ini. Terima kasih sebelumnya.

EDIT

var top = (from q in db.question_tables
                   from a in db.answer_tables
                   where q.QUEST_ID.Equals(a.ANS_QUEST_ID)
                   orderby q.QUEST_TEXT.Count() descending
                   select new
                   {
                       QUEST_TEXT = q.QUEST_TEXT

                   }).Take(10);

seperti inilah tampilan kueri linq saya sekarang, yang memberikan kesalahan "Operator urutan tidak didukung untuk tipe 'System.String'. ". :/

10 2012-01-02T15:20:05+00:00 2
Drew Noakes
Drew Noakes
Pertanyaan edit 28 Oktober 2012 в 6:18
Pemrograman
linq-to-sql
asp.net
.net
c#
Solution / Answer
Drew Noakes
Drew Noakes
2 Januari 2012 в 3:47
2012-01-02T15:47:07+00:00
Lebih
Sumber
Sunting
#15091517

Pesan kesalahan tersebut disebabkan karena Anda memanggil .Count() pada properti string (QUEST_TEXT). Hal itu dikompilasi karena string dapat dihitung. Namun, Linq-to-SQL tidak memahami hal ini.

Jika Anda memiliki hubungan antara dua tabel yang dipetakan dalam file DBMS Anda, maka Anda dapat menggunakannya dalam ekspresi Anda:

var top = (from q in db.question_tables
           orderby q.answers.Count() descending
           select q).Take(10);

Namun kode yang Anda posting tidak sesuai dengan deskripsi yang Anda berikan. Anda menyebutkan komentar, tetapi kode tersebut berbicara tentang jawaban.

Drew Noakes
Drew Noakes
Jawaban edit 2 Januari 2012 в 3:52
33
0
 scottm
scottm
2 Januari 2012 в 3:26
2012-01-02T15:26:48+00:00
Lebih
Sumber
Sunting
#15091516

Gabungkan Posts dan Comments, urutkan berdasarkan Post.Comment menghitung menurun dan ambil 10 teratas.

(from p in Posts
from c in Comments
where c.PostId == p.Id
orderby p.Comments.Count() descending
select p).Take(10);

EDIT

Dari pengeditan Anda, sepertinya Anda mencoba mencari pertanyaan dengan nilai QUEST_TEXT terpanjang. Jika itu yang Anda butuhkan, ubah saja kode Anda menjadi orderby q.QUEST_TEXT.Length descending, tetapi itu tidak terdengar seperti yang Anda tanyakan.

 scottm
scottm
Jawaban edit 2 Januari 2012 в 3:54
4
0
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Daniel Gogov
Terdaftar 2 hari yang lalu
2
工藤 芳則
Terdaftar 1 minggu yang lalu
3
Ирина Беляева
Terdaftar 1 minggu yang lalu
4
Darya Arsenyeva
Terdaftar 2 minggu yang lalu
5
anyta nuam-nuam (LapuSiK)
Terdaftar 2 minggu yang lalu
ID
JA
© kzen.dev 2023
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi