-3
votes

Comment effectuer les requêtes suivantes à Linq?

Je veux effectuer les requêtes suivantes avec Linq:

  • Compte de toutes les unités
  • Somme de toutes les unités marquées marques et Termalmarks
  • moyenne: Scoredmarks% Termarkmarks * 100 4) Rang
  • Ran basé sur le score (si User1 complète 2 unités avec l'unité ID 100 et 101 uniquement qui devrait comparer avec d'autres utilisateurs)

    dB: xxx

    code: xxx


1 commentaires

Avez-vous essayé, par exemple, appeler le somme () ou comptez () méthodes?


3 Réponses :


1
votes

Votre fonction adaptée avec une classe supplémentaire que j'ai introduite pour stocker le résultat: xxx

utilisation: xxx


10 commentaires

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 ce que vous voulez? Vous n'avez pas non plus besoin de Semide , SupportId et Coursed et même userid , 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 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 . 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);



0
votes
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);
}

0 commentaires

0
votes
 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;


      }

    }

0 commentaires