Ich habe zwei Tabellen "POSTS" und "COMMENTS". Ein Beitrag kann viele Kommentare enthalten und ich möchte die 10 besten Beiträge mit der höchsten Anzahl an Kommentaren auswählen können. Die post_id ist ein FK in der Kommentartabelle. Ich benutze Linq zu SQL. Bitte teilen Sie mir mit, wie dies zu tun ist. Vielen Dank im Voraus.
BEARBEITEN
%Vor%So sieht meine linq-Abfrage jetzt aus, sie gibt einen Fehler aus "Sequenzoperatoren werden für Typ 'System.String' nicht unterstützt.". : /
Diese Fehlermeldung kommt daher, dass Sie .Count()
für eine String-Eigenschaft ( QUEST_TEXT
) aufrufen. Das kompiliert, weil Strings aufzählbar sind. Linq-to-SQL versteht das jedoch nicht.
Wenn Sie die Beziehung zwischen den beiden Tabellen in Ihrer DBML-Datei zugeordnet haben, können Sie sie in Ihrem Ausdruck verwenden:
%Vor%Der von Ihnen gepostete Code entspricht jedoch nicht genau der Beschreibung, die Sie angegeben haben. Sie erwähnen Kommentare, aber der Code spricht über Antworten.
Treten Sie Posts
und Comments
bei, sortieren Sie nach Post.Comment
count absteigend und nehmen Sie die Top 10.
Bei Ihren Änderungen sieht es so aus, als würden Sie versuchen, die Frage mit dem längsten QUEST_TEXT-Wert zu finden. Wenn Sie das brauchen, ändern Sie einfach Ihren Code in orderby q.QUEST_TEXT.Length descending
, aber das klingt nicht so, wie Sie ursprünglich gefragt haben.
Tags und Links .net c# asp.net linq-to-sql