คำสั่ง LINQ เทียบเท่ากับ sum query ใน SQL [ซ้ำ]

Aug 19 2020

ฉันมีตาราง SQL พร้อมข้อมูล ::

UserId   POINTS
121        5
122        6
121        4
122        3
121        1

เพื่อคำนวณผลรวมของคะแนนสำหรับ userid ที่เกี่ยวข้อง

SELECT SUM(POINTS) FROM TBL_SCORED_POINTS WHERE UserId = 121;

ฉันจะแปลงสิ่งนี้เป็นLINQแบบสอบถามได้อย่างไร

public class ScoredPointModel
    {
        public int UserId { get; set; }        
        public int ScoredPoints { get; set; }                     
    }

ในLINQแบบสอบถามฉันต้องสร้างโดยที่ clause dynamic ฉันหมายถึงว่า clause value จะมาจากผู้ใช้ที่ไหน ฉันจะทำเช่นนี้ได้อย่างไร?

คำตอบ

1 LeeEvans Aug 19 2020 at 18:17

นี่คือสิ่งที่คุณกำลังมองหา:

var total = ScoredPointModels.Where(spm => spm.UserId == userId).Sum(spm => spm.ScoredPoints);