Ich habe eine Frage ... ich habe 3 Tabellen ...Komplexe Gruppe von Linq-Abfrage
Benutzer (id, name)
Antworten (id, title)
UserAnswers (id, user_id, right_answer_id, user_answer_id)
jetzt möchte ich Benutzernamen und ein Gesamtscore erhalten, die Zahl ist (wo (right_answer_id == user_an swer_id)) * 10 so ergeben sein kann wie dieses
Username Punkte
Imran 20
john 30
ich nicht eine solche Erfahrung in Linq haben. wie kann ich das machen? i in SQL wissen kann ich wie
select u.Name,
sum (case
when q.Right_Anwer_id = q.user_answerr_id then 1
else 0
end)
from quiz q
inner join [User] u
on u.id = q.user_id
group by u.Name,
q.test_id
having q.test_id = 1
Klassen tun:
class Answer
{
public int Id { get; set; }
public string Title{ get; set; }
}
class User
{
public int Id { get; set; }
public string Name{ get; set; }
}
class UserAnswers
{
public int id { get; set; }
public int user_id { get; set; }
public int user_answer_id { get; set; }
public int right_answerr_id { get; set; }
public virtual Answer Answer { get; set; }
public virtual User User { get; set; }
}
Sie fragen also, wie Sie eine 'Linq' Anweisung ausführen? Haben Sie bereits die 3 Tabellen, die Sie für die Abfrage benötigen? Wenn ja, fügen Sie bitte zu Ihrer Frage die Ergebnisse jeder Tabelle hinzu ... – Codexer
bro ich habe dort Namen und Schema hinzugefügt –
Wir brauchen den Code der Klassen, damit wir sehen, welche Navigationseigenschaften verwendet werden können. –