Je veux effectuer les requêtes suivantes avec Linq:
dB: p> code: p>
3 Réponses :
Votre fonction adaptée avec une classe supplémentaire que j'ai introduite pour stocker le résultat: utilisation: p>
ID utilisateur avec 1021 a terminé 3 unités 90 + 40 + 35 Ce score Comparez avec d'autres utilisateurs pas une unité unique
@Arfat, s'il vous plaît voir la modification. Est-ce ce que tu voulais?
Je suis en train de passer des cours userid Semid SemidAid à travers que j'ai besoin d'une seule requête LINQ où je peux obtenir le score et le rang moyen des élèves. Classement: Exemple Si l'utilisateur a terminé 2 unités avec une carte d'identité différente, les marques de l'unité d'identification ne se comparent qu'avec d'autres utilisateurs.
Veuillez consulter la base de données modifiée ID utilisateur 1022 terminé 2 unités (ID: 100 et 101) ID utilisateur 1021 terminé 3 unités (ID: 100,101,102) Si je transmettez UserID (1022) Course (109) Semide (3000) SemideD (2006) Ensuite, Résultat Shoinild Be Moyen est Scoredarks / Totalmarks * 100 qui correspond à 77,5 et au rang de User1022 est 1 et l'utilisateur 1021 Rank sera B 2
@Arfat, s'il vous plaît voir la modification. Est ceci i> ce que vous voulez? Vous n'avez pas non plus besoin de Semide code>, SupportId code> et Coursed code> et même userid code>, car ils ne participent pas à calculs.
@ Pteberf, la fonction est comme ceci dans cela, j'ai besoin d'une requête de Linq complet: Public Calculatformform == étudiant_id && i.coReid == Courseid && i.semid == Semide && I.SUBjectid == Subudside) **************** Ici, je dois ajouter cette logique ** *******************************}
@Arfat, s'il vous plaît voir la modification à nouveau. Est ceci i> ce dont vous avez besoin?
Un mot clé de retour ne doit pas être suivi d'une erreur d'expression d'objet
@Arfat c'est parce que votre type de retour de fonction est incorrect. En particulier Public Calculatformformform Assurez-vous que le type de retour correspond à ce que vous retour code>. par exemple. Public UseRrankObject CalculatSformform
Cela fonctionnera si nous l'écrivons comme suit: Var Scorecard = dBContext.stu_result. Où Semide && u.seulid == Semid && u.sujectid == Subud && u.Unitide == UnitID). Tolist () .groupby (u => u.userid) .Orderbydescendants (GRP => GRP.AVoir (u => u.spormarks)) = I + 1, AveragesCore = GRP.AVoir (U => U.ScoredRemarks)}). Tolist () .Firstordefault (u => u.userid == étudiant_id);
public GetCalculatePerform(int? Student_ID, int? CourseID, int? SemID, int? SubjectID)
{
var scoreCard = dbcontext.Stu_Result
.Where(u => u.CourseID == CourseID && u.SemID == SemID && u.SubjectID == SubjectID )
.ToList()
.GroupBy(u => u.UserID)
.OrderByDescending(grp => grp.Average(u => u.ScoredMarks))
.Select((grp, i) => new
{
UserId = grp.Key,
Rank = i + 1,
AverageScore = grp.Average(u => u.ScoredMarks)
}).ToList().Single(u => u.UserId == Student_ID);
}
public class GetCalculatePerform
{
abcEntities dbcontext = new abcEntities();
public UserRankObject tempobj { get; set; }
//********************************************************Performance & Rank Calculation********************************************
public GetCalculatePerform(int? Student_ID, int? CourseID, int? SemID, int? SubjectID)
{
var scoreCard = dbcontext.Stu_Result
.Where(u => u.CourseID == CourseID && u.SemID == SemID && u.SubjectID == SubjectID)
.ToList()
.GroupBy(u => u.UserID)
.OrderByDescending(grp => grp.Average(u => u.ScoredMarks))
.Select((grp, i) => new UserRankObject
{
UserId = grp.Key,
Rank = i + 1,
AverageScore = grp.Average(u => u.ScoredMarks)
}).ToList().Single(u => u.UserId == Student_ID);
// .FirstOrDefault(u=>u.UserId == Student_ID);
this.tempobj = scoreCard;
}
}
Avez-vous essayé, par exemple, appeler le
somme () code> oucomptez () code> méthodes?